我有一个相对复杂的布局,我想成为Android中ListView的“行”,但是我很难让最右边的元素显示在每一行上.
该行应如下所示:
左侧有一个图标(50dip x 50dip),右侧有一个图标(9 x 13).图标应左右对齐,中间带有可变文本.
问题是使用我当前的XML布局将我最右边的图标(9 x 13)推离可见区域,而我尝试的修复全部失败.
建议?
![替代文字] [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:padding="5dip">
<LinearLayout android:orientation="horizontal"
android:gravity="center" android:layout_width="fill_parent"
android:layout_height="60dip">
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent" android:minHeight="55dip"
android:padding="5dip" android:layout_height="fill_parent">
<ImageView android:id="@+id/img" android:layout_width="50dip"
android:layout_height="50dip" android:layout_marginRight="6dip" />
<TextView android:ellipsize="end" android:textColor="#454545"
android:id="@+id/ttt" android:textSize="18sp" android:gravity="center_vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent" />
</LinearLayout>
<ImageView android:layout_height="13dip" android:minWidth="9dip"
android:layout_width="fill_parent" android:id="@+id/disclosure" />
</LinearLayout>
</LinearLayout>
解决方法:
为什么不使用带有alignParentLeft和alignParentRight属性的RelativeLayout?我认为这样会更简单,并且使用更少的LayoutManagers.类似于以下内容:请注意,这假定行的高度为50dip,两个图像的高度为50×50 dip.
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="50dip"
android:layout_width="fill_parent"
android:layout_weight="0">
<ImageView
android:layout_height="50dip"
android:layout_width="50dip"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"/>
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_centerInParent="true"
android:text="some text"/>
<ImageView
android:layout_height="50dip"
android:layout_width="50dip"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"/>
</RelativeLayout>