【问题标题】:Android : Align textviews in a listviewAndroid:在列表视图中对齐文本视图
【发布时间】:2016-07-28 22:04:54
【问题描述】:

我有一个包含三个文本视图的列表。我不确定如何对齐它们以使输出看起来像:

abcded   -> xxxx              aaa
ddd      -> qqq               bbb
alkdladd -> hzhdl             ccc

而不是我目前得到的:

abcded -> xxxx                aaa
ddd -> qqq                    bbb
alkdladd -> hzhdl             ccc

第一行的文本视图是:

textview1 = abcded
textview2 = -> xxxx
textview3 = aaa

问题在于textview在中间的对齐方式。我该怎么做呢?

【问题讨论】:

  • 嘿,“abcded -> xxxx”是进入列表视图的字符串还是 3 个单独的列表视图?
  • @jvrodrigues - 嗨,刚刚编辑了问题。
  • @zgc7009 完全回答了您的问题!祝你好运

标签: android textview alignment


【解决方案1】:

您的一个选择是让您的列表项布局包含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>

这假设您只希望每个视图中的文本为单行。它将椭圆化(在末尾添加三个点)任何原本会换行到另一行的字符串。您可以根据需要调整权重以获得所需的外观。

可能还有其他方法可以使用 RelativeLayouts 之类的东西,但权重(我发现)是保证您的应用普遍对齐的最佳方法。

【讨论】:

  • 谢谢。是的,我希望它们中的每个文本都在一行中。我会尝试你的建议并让你知道结果。
  • @user2260040 我已经做了很多布局,就像您尝试这样做的那样,如果您遇到任何问题,请告诉我,应该能够解决您可能遇到的任何问题。
  • 非常感谢。会的。
猜你喜欢
  • 1970-01-01
  • 2016-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-14
  • 2014-02-18
相关资源
最近更新 更多