線形レイアウトの重力をプログラムで親の中心に変更する必要がある場合は、何らかの理由でそれがクラッシュ:レイアウトの重力をLinearLayoutに設定しようとするとClassCastExceptionが発生する
Non-fatal Exception: java.lang.ClassCastException
android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams
をI次のXMLを持っている:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true"
android:clickable="true"
android:orientation="vertical">
<ImageView
android:id="@+id/imageView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/bg02" />
<LinearLayout
android:id="@+id/myLinearLayout"
android:layout_width="300dp"
android:layout_marginTop="30dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:orientation="vertical">
...
...
</LinearLayout>
</RelativeLayout>
コード:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
params.weight = 1.0f;
params.gravity = Gravity.CENTER;
myLinearLayout.setLayoutParams(params);
- 私はそれが必要と思ったので、私も
RelativeLayout.LayoutParams
にLinearLayout.LayoutParams
を変えてみました親自体(この場合はRelativeLayout)に相対的であるが、それほど変わらない。
..私はそれを試してみましたが、それは助けていない(私は記事の最後に書いたように)...おそらくあなたは間違ってインポートした 'LayoutParams' –