2011-07-26 47 views
6

設置我的LinearLayoutLayoutParams時,必須使用哪個類?下面的兩個不工作:添加LayoutParams時的ClassCastException

  1. linLayout.setLayoutParams(new ViewGroup.LayoutParams(50,50));
  2. linLayout.setLayoutParams(new android.widget.LinearLayout.LayoutParams(50,50));

,如果我先拿到的參數,可以改變它們,並將它們設置回它的工作。所以我想我返回的Params繼承自ViewGroup.LayoutParams ...

任何想法? THX

回答

12

使用父級的LayoutParams。因此,如果你的LinearLayout是RelativeLayout的孩子,那麼你使用 linLayout.setLayoutParams(new android.widget.RelativeLayout.LayoutParams(50,50));

+0

瘋狂,這很酷:)爲什麼使用這些PARAMS,而不是LinearLayout PARAMS? – Frempe

+1

我不知道確切的答案,但LayoutParams被視圖用來告訴他們的父母他們想如何擺放。這是父特定的(取決於父佈局類型)。所以當你在投射linlayout.getLayoutParams時,在這種情況下將它轉換爲(RelativeLayout.LayoutParams)。 –

+0

啊有道理,THX! – Frempe

相關問題