我有一个有三个textview的listvew。我不确定如何对齐它们以使输出看起来像:
abcded -> xxxx aaa
ddd -> qqq bbb
alkdladd -> hzhdl ccc
而不是我目前得到的:
abcded -> xxxx aaa
ddd -> qqq bbb
alkdladd -> hzhdl ccc
第一行的textviews是:
textview1 = abcded
textview2 = -> xxxx
textview3 = aaa
问题在于中间的textview对齐。我该怎么做呢?
答案 0 :(得分:2)
您拥有的一个选项是让您的列表项布局包含LinearLayout
并使用权重。类似的东西:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="6" >
<TextView
android:id="@+id/left_text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true"
android:maxLines="1"
android:ellipsize="end"> />
<TextView
android:id="@+id/center_text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="4"
android:singleLine="true"
android:maxLines="1"
android:ellipsize="end" />
<TextView
android:id="@+id/right_text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true"
android:maxLines="1"
android:ellipsize ="end" />
</LinearLayout>
这假设您只希望每个视图中的文本都是一行。它将椭圆化(在末尾添加三个点),否则将包裹到另一行。您可以根据需要使用重量来获得所需的外观。
使用RelativeLayout
或其他内容可能有其他方式,但权重(我发现)是保证应用程序在全球范围内保持对齐的最佳方法。