我正在和Android列表视图中创建自定义列表项.它很简单,左边是文本视图,右边是图像.图像应该一直对齐,文本视图应该占据左侧的所有空间.问题是,我可以让图像显示,但它向左推.如果我将textview宽度设置为fill_parent,图像将消失.这是我的布局:
<?xml version="1.0" encoding="utf-8" ?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal"
android:layout_width="fill_parent" android:layout_height="50px" android:layout_gravity="center_vertical">
<!-- item -->
<TextView android:id="@+id/txtItem" android:gravity="center_vertical" android:textSize="20px" android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
<!-- disclosure image -->
<ImageView android:layout_gravity="right|center_vertical" android:src="@drawable/common_icon_arrow_disclosure"
android:layout_width="wrap_content" android:layout_height="wrap_content"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我也试过相对布局,但同样的事情发生了.我究竟做错了什么?
编辑:澄清,这是我想要完成的:

我希望文本字段占据整个左侧区域,图像位于右侧,未缩放,垂直居中.
小智 25
您也可以像这样直接将drawable添加到textview.
<TextView
android:id="@+id/txtItem"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:drawableRight="@drawable/common_icon_arrow_disclosure"
android:gravity="center_vertical"
android:textSize="20px" />
Run Code Online (Sandbox Code Playgroud)
你可以像这样使用位图drawable(这也增加了圆角):
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<solid android:color="@android:color/white" />
<stroke
android:width="2dp"
android:color="#adadad"
/>
<corners android:radius="5dp" />
</shape>
</item>
<item android:right="5dp"
android:top="2dp"
android:bottom="2dp">
<bitmap
android:src="@drawable/image"
android:gravity="right"
/>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
并将此drawable放在TextView的background属性中:
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/right_image"
android:text="some text"
/>
Run Code Online (Sandbox Code Playgroud)
相对布局就是你想要的。在您的情况下, fill_parent 属性导致文本视图将图像推出屏幕。如果您使用相对布局并将文本视图设置为使用layout_toLeftOf,它应该可以工作。
这是一个我认为可行的简单示例(我还没有测试过它,它来自记忆,但想法就在那里)...
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="50px"
android:layout_gravity="center_vertical">
<ImageView android:id="@+id/img"
android:layout_gravity="right|center_vertical"
android:src="@drawable/common_icon_arrow_disclosure"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView android:id="@+id/txtItem"
android:gravity="center_vertical"
android:textSize="20px"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_toLeftOf="@id/img" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31766 次 |
| 最近记录: |