我在尝试让这种布局工作时遇到很多问题。在我的列表中,我想要带有名称(TextView),图标(ImageView)和状态(TextView)的行。但我希望状态是右对齐和固定字符宽度(20),以及与状态高度相匹配的图标,并且在左侧。这样,当我有很多行时,无论状态如何,图标都会对齐。
我无法通过任何布局来实现这一目标,我已尝试将状态minEms
设置为20,但由于某种原因它会忽略重力。这是我到目前为止所拥有的内容,但这样图标就不会对齐,因为无论字符数是多少,它们都会保持在状态的左侧。内部LinearLayout的原因是我可以将ImageView的高度设置为match_parent
,并且与文本的高度相同。
<LinearLayout
android:id="@+id/row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="testing a really really really really really long name"
android:ellipsize="end"
android:singleLine="true"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="right">
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:src="@drawable/ic_status" />
<TextView
android:id="@+id/status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is max txt size" />
</LinearLayout>
</LinearLayout>
答案 0 :(得分:0)
试试这个布局。
更改父级的高度以更改子视图高度。
另请注意weightSum =“100” 名称TextView的布局权重设置为70,因此占用屏幕宽度的70%。做出你想要的任何改变,只要确保孩子的总重量加起来为weightSum。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/row"
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal"
android:weightSum="10" >
<TextView
android:id="@+id/name"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="7"
android:ellipsize="end"
android:singleLine="true"
android:text="testing a really really really really really long name" />
<ImageView
android:id="@+id/icon"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:src="@drawable/ic_status" />
<TextView
android:id="@+id/status"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"
android:text="This is max txt size"
android:textColor="#FFFFFF" />
</LinearLayout>