0

行に次の XML を含む 2 行のリストビューがあります。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:orientation="vertical" 
android:layout_height="?android:attr/listPreferredItemHeight"
android:padding="6dip"
android:gravity="center_vertical"
>

  <TextView
    android:id="@+id/designation"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:gravity="center_vertical"
    android:textSize="18sp"
    android:textStyle="bold" />

  <TextView
    android:layout_width="fill_parent"
    android:layout_height="0dip"
    android:layout_weight="2" 
    android:id="@+id/orderedValue"
    android:gravity="bottom"
    android:singleLine="true"
    android:ellipsize="marquee"
    />  

</LinearLayout>

私が望むのは、最初の行 (指定) を行の正確な垂直方向の中央に配置し、2 番目の行 (orderedValue) をそのすぐ下に配置することです

私は LinearLayout/Relative レイアウト、重力と TextViews の layout_gravity のいくつかの組み合わせを試してみましたが、役に立ちませんでした

ここにヘルプ/ポインタはありますか?

4

3 に答える 3

1

その下のテキストと同じ重みを共有できるView最初のものの上に空白を作成します。TextView

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

  <View
    android:layout_width="match_parent"
    android:layout_height="0dip"
    android:layout_weight="1"
    />  

  <TextView
    android:id="@+id/designation"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textSize="18sp"
    android:textStyle="bold" />

  <TextView
    android:layout_width="match_parent"
    android:layout_height="0dip"
    android:layout_weight="1" 
    android:id="@+id/orderedValue"
    android:singleLine="true"
    android:ellipsize="marquee"
    />  

</LinearLayout>
于 2012-08-18T22:51:23.150 に答える
0

私があなただったらdesignation、 TextView を LinearLayout 内に配置して、それandroid:layout_gravityを中央に配置しようとします。アクティビティでこれを試してみたところ、最初の TextView が中央に配置されました。ただし、リストで機能するかどうかはわかりません。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:orientation="vertical" 
android:layout_height="?android:attr/listPreferredItemHeight"
android:padding="6dip"
android:gravity="center_vertical" >
    <LinearLayout 
        android:id="@+id/layout"
        android:layout_height="fill_parent" 
        android:layout_width="fill_parent"
        android:layout_weight="1"
        android:orientation="vertical" >
        <TextView
        android:id="@+id/designation"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:textSize="18sp"
        android:textStyle="bold"
        android:text="designation" />
    </LinearLayout>
    <TextView
    android:layout_width="fill_parent"
    android:layout_height="0dip"
    android:layout_weight="2" 
    android:id="@+id/orderedValue"
    android:gravity="bottom"
    android:singleLine="true"
    android:ellipsize="marquee"
    android:text="orderedValue" />  
</LinearLayout>
于 2012-08-19T00:39:35.130 に答える
0

iTurki、ご意見ありがとうございますが、ソリューションを読む前に解決しました。

相対レイアウトに切り替え、いくつかのパラメーターを変更しました。最も重要なのは、android:layout_centerVertical="true" を追加することです。

ここに私の最終的なレイアウトがあります:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:orientation="vertical" 
  android:layout_height="fill_parent"
  android:padding="6dip"
  >

  <TextView
    android:id="@+id/designation"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"       
    android:textSize="19sp"
    android:layout_centerVertical="true"
    android:textStyle="bold" />

  <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/orderedValue"       
    android:singleLine="true"
    android:layout_below="@id/designation"
    android:paddingTop="6dip"
    android:textColor="#33B5E5"
    android:textSize="13sp"
    />  

</RelativeLayout>

お二方、ご興味をお持ちいただきありがとうございます!

于 2012-08-19T00:47:05.290 に答える