0

2つのチェックボックスを備えたカスタムビューが必要だとします。次のようなレイアウトファイルの作成を開始します。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<CheckBox
    android:id="@+id/checkBox1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="CheckBox" />

<CheckBox
    android:id="@+id/checkBox2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="CheckBox" />

</LinearLayout>

次に、FrameLayoutを拡張するビューを作成し、layout-inflatorを使用してレイアウトを追加します。

mInflate.inflate(R.layout.foo, this, true);

このアプローチの私の問題は、2つのチェックボックスを備えた非常に基本的なビューを持つために2つのレイアウトをネストしていることです。私は現在非常に複雑なレイアウトに取り組んでいるので、レイアウトインフレーターを使用するときにレイアウトの不要なネストを回避する方法を探しています。

4

2 に答える 2

1

チェックボックスを動的に作成します。

CheckBox checkBox1 = new CheckBox(this); // or getActivity() depending on code context
CheckBox checkBox2 = new CheckBox(this);
checkBox1.setText("CheckBox");
etc.
frameLayout.addView(child1);
frameLayout.addView(child2);
于 2012-04-30T16:44:31.247 に答える
1

xmlレイアウトでタグを使用してmerge、それを膨らませることができます。

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">

<CheckBox
    android:id="@+id/checkBox1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="CheckBox" />

<CheckBox
    android:id="@+id/checkBox2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="CheckBox" />

</merge>

FrameLayoutビューを積み重ねてしまうため、レイアウトに最適なソリューションではない可能性があります。

于 2012-04-30T16:49:33.503 に答える