Android LinearLayout 包裹内容的问题
我有以下列表项的线性布局。
<ImageView android:id="@+id/icon"
android:src="@android:drawable/ic_input_add"
android:layout_height="wrap_content"
android:layout_width="22px"
android:layout_marginTop="4px"
android:layout_marginRight="4px"
android:layout_marginLeft="1px" />
<LinearLayout android:id="@+id/linearLayout1"
android:orientation="vertical"
android:layout_height="wrap_content"
android:layout_width="wrap_content">
<TextView android:layout_width="wrap_content"
android:text="LongerTextView"
android:id="@+id/textView1"
android:layout_height="wrap_content"/>
<TextView android:layout_width="wrap_content"
android:text="TextView"
android:id="@+id/textView2"
android:layout_height="wrap_content"/>
</LinearLayout>
<LinearLayout android:id="@+id/linearLayout2"
android:layout_height="match_parent"
android:layout_width="fill_parent"
android:gravity="right">
<ImageView android:layout_marginTop="4px"
android:src="@android:drawable/ic_input_add"
android:layout_marginLeft="1px"
android:layout_height="wrap_content"
android:layout_marginRight="1px"
android:id="@+id/icon2"
android:layout_width="22px"/>
</LinearLayout>
布局应该在左侧显示图像,一直在右侧显示图像,中间有两个文本项。只要文本不变得比屏幕宽,这种方法就可以正常工作。一旦文本变长,我的右侧图标就会被推离屏幕。
文本应该换行,并且左侧和右侧的图标应该始终显示。
我怎样才能实现这个目标?
I have the following linearlayout for a listitem.
<ImageView android:id="@+id/icon"
android:src="@android:drawable/ic_input_add"
android:layout_height="wrap_content"
android:layout_width="22px"
android:layout_marginTop="4px"
android:layout_marginRight="4px"
android:layout_marginLeft="1px" />
<LinearLayout android:id="@+id/linearLayout1"
android:orientation="vertical"
android:layout_height="wrap_content"
android:layout_width="wrap_content">
<TextView android:layout_width="wrap_content"
android:text="LongerTextView"
android:id="@+id/textView1"
android:layout_height="wrap_content"/>
<TextView android:layout_width="wrap_content"
android:text="TextView"
android:id="@+id/textView2"
android:layout_height="wrap_content"/>
</LinearLayout>
<LinearLayout android:id="@+id/linearLayout2"
android:layout_height="match_parent"
android:layout_width="fill_parent"
android:gravity="right">
<ImageView android:layout_marginTop="4px"
android:src="@android:drawable/ic_input_add"
android:layout_marginLeft="1px"
android:layout_height="wrap_content"
android:layout_marginRight="1px"
android:id="@+id/icon2"
android:layout_width="22px"/>
</LinearLayout>
The layout is supposed to show an image on the left and all the way on the right, with two text items between. This works fine, as long as the text does not become wider than screen. As soon as the text is longer my right icon gets pushed off the screen.
The text is supposed to wrap to a new line and both the left and right icon are supposed to always show.
How can I achieve this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
尝试使用 相对布局
在相对布局内,您可以指定图像(例如,id:imgLeft)使用layout_alignParentLeft =“true”,它将保留在左侧
然后另一个图像(imgRight)使用layout_alignParentRight =“true”,它将保留在
右侧然后包含文本的线性布局:
layout_toLeftOf=“@id/imgRight”和layout_toRightOf=“imgLeft”
Try to use Relative Layouts
Inside a Relative Layout, you can specify an image (with id: imgLeft for example) with layout_alignParentLeft="true", that will stay on the left
Then another image (imgRight) with layout_alignParentRight="true", that will stay on the right
and then the linear layout containing the texts with:
layout_toLeftOf="@id/imgRight" and layout_toRightOf="imgLeft"
我已经根据您的要求重新设计了您的 xml。使用以下代码。
如果我的回答对你有帮助,别忘了投票哦。
谢谢
迪帕克
I have redesigned your xml as per your requirement. Use the following code.
Donot forget to vote if my response is helpful for you.
Thanks
Deepak
IIRC(未测试,但我可以在大约 8 小时内完成)您可能会丢失第三个 LinearLayout(包装第二个 ImageView 的那个)。然后将包裹 TextView 的 LinearLayout 的 android:gravity 设置为居中。
IIRC (not tested, but I can do in about 8 hours) you can lose the third LinearLayout (the one that wraps the second ImageView). Then set the android:gravity of the LinearLayout that wraps the TextViews to center.