layout_width="wrap_content"
親全体を中心にして親内にアイテムを配置したいようです。
もしかして、こういうこと?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView android:text="Content above..."
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<LinearLayout android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal">
<TextView android:text="One"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView android:text="Two"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView android:text="Three"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<TextView android:text="Content below..."
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
と の違いを覚えておいてgravity
くださいlayout_gravity
。このgravity
属性は、ビューのコンテンツを参照します。layout_gravity
(および で始まる他のすべての属性layout_
) は、その親内のビューのレイアウトを参照します。
編集:layout_width="fill_parent"
ListView アイテムを同様にフォーマットする場合は、 andを使用して ListView 自体を使用して、リスト アイテムのレイアウトとして次のようなものを試してくださいlayout_height="fill_parent"
。
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:weightSum="2"
android:gravity="center">
<TextView android:id="@+id/text"
android:layout_weight="1"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
text
通常の方法で、各リスト項目のid を持つ TextView の内容を変更します。現在のminHeight
テーマから引き出された設定により、タッチに適したサイズが維持されます。
この場合の均一なセンタリングは、LinearLayout の とweightSum
TextViewの の組み合わせによって処理されます。親の weightSum で割った TextView の重みは、LinearLayout が与える水平方向のスペースのパーセンテージを決定します。上記の例では、使用可能な水平スペースの 1/2 が取得されますが、中央に配置されます。gravity
layout_weight
ListView は現在画面に表示されていないリスト項目の内容を認識しないため、アダプタ内のすべての項目のテキストを測定して内容を完全に中央に配置する方法はありません。上記の例のようなリスト項目のレイアウトを使用して近似する必要があります。