如何在没有imageview存在的情况下正确对齐文本?

时间:2014-06-09 10:10:22

标签: android

我的listview包含以下xml(list_row.xml)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@color/settings_list_item"
    android:baselineAligned="false"
    android:descendantFocusability="blocksDescendants"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/txtItemName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginLeft="10dp"
        android:text="@string/settings_item_1"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#000000" />

    <TextView
        android:id="@+id/txtSubItemName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_toLeftOf="@+id/rightArrow"
        android:text="rightItem"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#000000" />

    <ImageView
        android:id="@+id/rightArrow"
        android:layout_width="50dip"
        android:layout_height="50dip"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:contentDescription="@null"
        android:src="@drawable/ic_arrow" />

</RelativeLayout>

现在,这会在rightItem图像之前显示>。但有时我不想显示右箭头,在这种情况下,如果我将其可见性设置为gone,那么我的Textview移动到左侧,实际上我想要显示在右侧。我怎样才能达到这个要求?

3 个答案:

答案 0 :(得分:1)

您已尝试过GONE 你试过INVISIBLE吗?

.setVisibility(View.INVISIBLE);

我明白了。

<TextView
        android:id="@+id/txtSubItemName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_toLeftOf="@+id/rightArrow"
        android:gravity="right" <!-- ADD THIS -->
        android:text="rightItem"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#000000" />

添加: android:gravity="right"

答案 1 :(得分:1)

<?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:background="#dddd"
    android:baselineAligned="false"
    android:descendantFocusability="blocksDescendants"
    android:gravity="center_vertical"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/txtItemName"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginLeft="10dp"
        android:layout_weight="1"
        android:text="#000"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#000000" />

    <TextView
        android:id="@+id/txtSubItemName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_toLeftOf="@+id/rightArrow"
        android:text="rightItem"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#000000" />

    <ImageView
        android:id="@+id/rightArrow"
        android:layout_width="50dip"
        android:layout_height="50dip"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:contentDescription="@null"
        android:src="@drawable/ic_launcher" />

</LinearLayout>

答案 2 :(得分:1)

相对布局的另一个答案是:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#dddd"
    android:baselineAligned="false"
    android:descendantFocusability="blocksDescendants"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/txtItemName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginLeft="10dp"
        android:text="#000"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#000000" />

    <ImageView
        android:id="@+id/rightArrow"
        android:layout_width="50dip"
        android:layout_height="50dip"
        android:layout_alignParentRight="true"
        android:contentDescription="@null"
        android:src="@drawable/ic_launcher" />

    <TextView
        android:id="@+id/txtSubItemName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignWithParentIfMissing="true"
        android:layout_centerVertical="true"
        android:layout_toLeftOf="@+id/rightArrow"
        android:text="rightItem"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#000000" />

</RelativeLayout>