2011-07-26 9 views
6

LayoutParamsLinearLayoutに設定すると、どのクラスを使用する必要がありますか?次の二つが機能していない:LayoutParamsを追加するとClassCastExceptionが発生する

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

私は最初のparamsを取得した場合、それが働いてそれらを変更して戻ってそれらを設定します。ですから、ViewGroup.LayoutParamsから継承して返されるParamsを考えてみましょう。

ご存知ですか? THX

答えて

12

親のLayoutParamsを使用します。したがって、LinearLayoutがRelativeLayoutの子である場合は、 linLayout.setLayoutParams(new android.widget.RelativeLayout.LayoutParams(50,50));

+0

を使用してください。なぜこれらのパラメータを使用し、LinearLayoutパラメータを使用しないのですか? – Frempe

+1

私は正確な答えは分かりませんが、LayoutParamsはレイアウトによってどのようにレイアウトされるべきかを親に伝えるためにビューによって使用されます。これは親に固有です(親レイアウトタイプに依存します)。したがって、linlayout.getLayoutParamsをキャストしているときにも、この場合は(RelativeLayout.LayoutParams)にキャストします。 –

+0

ああ、理にかなって、THX! – Frempe

関連する問題