在LinearLayout中对齐TextView和ImageView

时间:2012-10-28 19:24:40

标签: android xml textview imageview android-linearlayout

我有一个带有自定义适配器的ListView以及此List中项目的布局。项目的布局只是带有ImageView的TextView。图像应与屏幕右侧对齐。但是,图像的位置会稍微移动,具体取决于TextView中文本的长度。这就是它的样子:

screenshot

这是我的XML代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:gravity="center_vertical" >

    <TextView
        android:id="@+id/txtCategoryName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="10"
        android:singleLine="true"
        android:ellipsize="end"
        android:gravity="center_vertical"
        android:paddingTop="5dp"
        android:paddingBottom="5dp"
        android:textColor="@color/list_text_color"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <ImageView
        android:id="@+id/imgArrowRight"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/right_arrow_44"
        android:contentDescription="@string/img_description_right_arrow"
        android:layout_gravity="right" />

</LinearLayout>

如何使图像始终向右对齐,而不是轻推?

2 个答案:

答案 0 :(得分:9)

RelativeLayout可以使用android:layout_alignParentRightandroid:layout_alignParentLeft很好地解决您的问题。类似的东西:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<TextView
    android:id="@+id/txtCategoryName"
    android:layout_alignParentLeft="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:singleLine="true"
    android:ellipsize="end"
    android:gravity="center_vertical"
    android:paddingTop="5dp"
    android:paddingBottom="5dp"
    android:textColor="@color/list_text_color"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<ImageView
    android:id="@+id/imgArrowRight"
    android:layout_alignParentRight="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/right_arrow_44"
    android:contentDescription="@string/img_description_right_arrow"/>

答案 1 :(得分:1)

我认为您尝试使用RelativeLayout并在图像上使用对齐父对象并在TextView上对齐父对象。