レイアウト パラメーター (幅、高さ、マージン) を設定するか、プログラムで LayoutParams 自体を特定のレイアウトに設定するには、親のレイアウト タイプを知る必要があります。
例 1
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
someLayout.setLayoutParams(lp);
ここでは、 someLayout タイプを知る必要はありません。LinearLayout.LayoutParams は、someLayout の親が LinearLayout であることを意味します。
例 2
LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams)someLayout.getLayoutParams();
lp.width = LayoutParams.MATCH_PARENT;
lp.height = LinearLayout.LayoutParams.MATCH_PARENT;
親の型が不明な場合に問題が発生します。カスタマイズ可能なリストビューの行レイアウトを実装すると、行の親が不明な状況が発生します。リスト項目を保持する親。
リストビューアイテムのレイアウト例
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/country"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal|top">
.
.
</LinearLayout>
これは、Adapter クラスの getView メソッドで返される View 内に入ります。
IDを持つそのレイアウトにLayoutParamsを設定する方法@+id/country
???
私が本当に心配しているのは、そのレイアウトにマージンを設定することです。