TableLayout
最初の行には 1 つの列があり、TextView
2 番目の行には 2 つの列があり、最初の行には があり、2 番目の行には異なる行にListView
1 つずつEditText
あります。Button
両方の行を同じ高さ (正確に画面の半分) にし、2 行目の両方の列を同じ幅 (正確に画面の半分) にする必要があります。私はこのようなものを構築したい:
どうすればよいですか?どのレイアウトを選択すればよいですか?
TableLayout
最初の行には 1 つの列があり、TextView
2 番目の行には 2 つの列があり、最初の行には があり、2 番目の行には異なる行にListView
1 つずつEditText
あります。Button
両方の行を同じ高さ (正確に画面の半分) にし、2 行目の両方の列を同じ幅 (正確に画面の半分) にする必要があります。私はこのようなものを構築したい:
どうすればよいですか?どのレイアウトを選択すればよいですか?
現在のソリューションが機能するとは思いません(等しいスペース(幅と高さ)+ListView
プレゼンスの要件のため)。1 つの解決策は、以下のレイアウトのようにネストされたものを使用することですweights
(これはパフォーマンスに悪いですが、(おそらく、何をしているのかわからない場合) アプリを壊すような重要なことではありません)。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<include
android:layout_width="fill_parent"
android:layout_height="wrap_content"
layout="@layout/identical_layout" />
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:text="TextView" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" >
<ListView
android:id="@+id/list"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1" >
</ListView>
<LinearLayout
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:orientation="vertical" >
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="ddd" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
ネストされたweights
問題を回避する別のオプションは、RelativeLayout
以下のようなものを使用することです(私はテストしていません):
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<include
android:id="@+id/included_layout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
layout="@layout/identical_layout" />
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@id/included_layout" >
<View
android:id="@+id/anchor"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_centerVertical="true" />
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_above="@id/anchor"
android:layout_alignParentTop="true"
android:background="#99cc00"
android:text="TextView" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_alignParentBottom="true"
android:layout_below="@id/anchor" >
<ListView
android:id="@+id/list"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1" >
</ListView>
<LinearLayout
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:orientation="vertical" >
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="ddd" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
identical_layout
レイアウト ファイルは、 で共有される共通のレイアウトを表しますActivities
。