そのようなレイアウトの構造は何ですか?左の列のテキストは右に配置され、右の列のテキストは左に配置されます。また、行は線で区切られています。ヒントをありがとう!
2 に答える
ListView
自分だけのアイテムを作ることができます。これにより、すべての行の間にセパレーターが表示されます。
ListView
のアイテムに独自のレイアウトを設定するには、レイアウトの xml ファイルを準備し、次のように設定する必要があります。
yourListView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.layout_file_for_your_item, items));
Item
のレイアウト ( LinearLayout
) は 2 つLinearLayout
の で構成されます。最初のもの (左)TextView
では、親で右に配置されます。2 つ目 (右) はTextView
、2 つのレイアウトの間にギャップを作るために、親の左に配置され、margin-left が特定の値に設定されます。
- 青: リストビュー
- 赤: ListView のアイテム (LinearLayout)
- 緑: 最初の LinearLayout
- 黄色: 2 番目の LinearLayout
レイアウトに listview フィールドを作成して (テキストビューや画像ではなく、内部を空にして)、次のような別のレイアウトを作成することができます。
メインレイアウト:
<?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" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="bla bla" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="bla bla 2" />
<!-- listview with populated items -->
<ListView
android:id="@+id/mylist"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout>
実装されたアイテム:
<TextView
android:id="@+id/itemleft"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:layout_weight="1"
android:textStyle="bold"
android:gravity="right|center_vertical"
android:text="Location" />
<TextView
android:id="@+id/itemright"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_weight="1"
android:gravity="left|center_vertical"
android:text="Los Angeles, US" />
</LinearLayout>
この設定のプレビューは次のとおり です。もちろん項目は 1 つしかありませんが、その時点で入力されます。それはただのプレビューです。
(入力されたアイテムは後でlistViewで使用されます)次に、コードでベースアダプターの実装の例を使用してみてください。ここで例を確認してください:link。理解していただければ幸いですが、このタイトルではカスタムリストビューを使用することは問題ではありませんでした:)