Android Nested LinearLayout,Gravity没有预期的结果

时间:2013-12-07 17:39:24

标签: android xml android-layout android-listview android-linearlayout

嵌套LinearLayouts存在问题,无法用作ListView中的自定义行。

App是一种内部企业电话簿,此行将在ListView中重复。

当重力设置为左侧时,右侧的“详情Witheld”看起来很好,但如果将重力设置为中心,则它显示在页面的一半处。

我猜我的父级LinearLayout对于屏幕来说太宽了,但它被设置为fill_parent,所以我看不出如何。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"

完整的XML源代码如下。

左对齐,我希望细节成为一个空间,因此它位于Witheld的中心。

Aligned left looks like this.

Aligned Center看起来像这样

enter image description here

完整XML源

<?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="wrap_content"
              android:orientation="horizontal" >

  <!--  Left side name & post / parish -->
  <LinearLayout
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:layout_weight="80"
      android:orientation="vertical" >
    <TextView
        android:id="@+id/txtrowname"
        android:layout_marginBottom="2dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Smtih, Mr John"
        android:textSize="24sp"
        android:textColor="@color/darkblue_text"                
        android:textStyle="normal" />
    <TextView
        android:id="@+id/txtrowpost"
        android:layout_marginBottom="2dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="12 Some Street, SomeTown.  SS11 1SS"
        android:textSize="12sp"
        android:textColor="#000000"
        android:textStyle="normal" />
  </LinearLayout>
  <!--  Details withheld on right -->
  <TextView
      android:id="@+id/txtrowwitheld"
      android:layout_width="0dp"
      android:layout_height="fill_parent"
      android:text="Details Witheld"
      android:layout_weight="20"
      android:textSize="18sp"
      android:gravity="center"
      android:lines="2"
      android:maxLines="2"
      android:textColor="#FF0000"
      android:layout_marginBottom="2dp"
      android:textStyle="normal" />
</LinearLayout>

Ramesh建议的带有layout_gravity的图片 enter image description here

2 个答案:

答案 0 :(得分:0)

尝试layout_gravity代替重力,它将起作用并且不使用line =“2”。如果宽度超过,它将自动适合2行。

答案 1 :(得分:0)

我最终只是在没有居中的情况下做到了。