すべての要素が各リストビュー項目に対して同じ寸法で、レイアウト全体が画面の幅全体を占める複雑なリストビュー項目レイアウトを構築しようとしています。これまでのところ、linearlayout を使用してこれを実行しようとしましたが、これが間違ったアプローチであることがわかりました。次に、相対レイアウトを使用しようとしましたが、これはうまくいきませんでした。誰かがこれを機能させる方法を指摘してくれることを願っています。
これが私が構築しようとしているものの図です。
ダイアグラムの詳細は次のとおりです。
要素 5 と 6 だけが、すべてのリスト項目で同じ内容を持っています。残りの要素はすべて異なるテキストになりますが、レイアウトは常に同じサイズにする必要があります。
要素 4 は 2 行のみにする必要があります。要素 1、2、および 3 は 1
行のみにする必要があります。要素 2 は左に配置し、要素 3 は
右に配置する必要があります。要素 2 と 3 は、それぞれ要素 4 の幅の半分にする必要があります。
これが、RelativeLayout を使用したこのレイアウトの試みです。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:padding="2dp">
<TextView
android:id="@+id/txtRaceNumber"
android:layout_width="20dp"
android:layout_height="fill_parent"
android:textAppearance="?android:attr/textAppearanceLarge"
android:gravity="center"
android:layout_gravity="center"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true" />
<TextView
android:id="@+id/txtRaceName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_toRightOf="@id/txtRaceNumber"
android:layout_alignParentTop="true" />
<TextView
android:id="@+id/txtRaceClass"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textAppearance="?android:attr/textAppearanceSmall"
android:maxLines="1"
android:ellipsize="marquee"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_toRightOf="@id/txtRaceNumber" />
<TextView
android:id="@+id/txtRaceStartTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textAppearance="?android:attr/textAppearanceSmall"
android:maxLines="1"
android:layout_alignParentBottom="true"
android:layout_toRightOf="@id/txtRaceClass" />
<ImageButton
android:id="@+id/btnTracklist"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:background="@null"
android:paddingRight="8dip"
android:focusable="false"
android:layout_gravity="center_vertical|center_horizontal"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_toRightOf="@id/txtRaceStartTime" />
<ImageView
android:src="@drawable/go"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_gravity="center_vertical"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_toRightOf="@id/btnTracklist" />
</RelativeLayout>
この RelativeLayout を使用すると、すべての要素がレイアウト内でスクランブルされて表示されます。
図に示したように、これらすべての要素を整列させるにはどうすればよいですか?