我正在尝试创建自定义列表项布局,但我遇到了一个问题。请参阅以下示例:
有效运作
问题
问题是绿色矩形填满所有蓝色框(宽度设置为wrap_content
),因为绿色方块消失了。方块必须在绿色矩形的右边,但是这个矩形的大小可以改变,我无法将绿色方块固定在蓝色框的右侧。
红色矩形是固定的,它们不是问题。
我使用了一些LinearLayout
和RelativeLayout
来执行此操作,但它无法正常工作。
我也不能使用drawableRight
属性,因为在不久的将来,会有两个图标(绿色方块)而不是一个。
如果某人已经遇到此问题或有办法解决此问题。
想要的结果是:
[[ListIconView] [[此处有些文字] [图标]]< .....空格....... [x] [y] [z]]
[[ListIconView] [[来自.......的长文字] [图标]]< 。空格..> [x] [y] [z]]
[[ListIconView] [[来自旧书的很长篇文章....] [图标]] [x] [y] [z]]
x,y和z是图标。
答案 0 :(得分:0)
假设红色方块和矩形不是问题(可能是父布局为RelativeLayout
),并且您有TextView
和ImageView
为绿色矩形和绿色方块,请使用
android:layout_weight="1"
代表TextView
(绿色矩形)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Some very looooooooooooooooooooooooooooooooooooooooooooooooong text here" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/my_image" />
</LinearLayout>
答案 1 :(得分:0)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="100">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="20"
android:text="blablah"/>
<LinearLayout
android:layout_weight="60"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:weightSum="100">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="80"
android:text="test string string string"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="20"
android:text="String test"/>
</LinearLayout>
<ImageButton
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="20"/>
</LinearLayout>
我上面所做的是,我根据我想要适合的根布局中的每个项目的百分比来分配空间,即LinearLayout,总重量为100%。 ImageView将占用20%的空间,然后是另一个占据60%的LinearLayout,最后是占用20%的ImageButton