【问题标题】:Aligning Content in an Android ListView在 Android ListView 中对齐内容
【发布时间】:2017-11-27 03:21:38
【问题描述】:
我很抱歉这个问题可能在某个地方被问过,但我不知道该如何表达。
我的 Android 应用中有一个 ListView,我想对齐每一行中的内容,以便每个 TextView 与其下方行(左、右和中心)中的相应 TextView 对齐。
这张图就是我要的listview:
因此,左侧 TextView 一直向左对齐,右侧 TextView 一直向右对齐。中心 TextView 对齐,使其始终“开始”在同一个位置(即,它的位置不受左侧 TextView 长度的影响)。
我怎样才能做到这一点?非常感谢
【问题讨论】:
标签:
java
android
xml
listview
【解决方案1】:
像下面这样使用.. 我使用了第一个 textview 左侧,第二个中心和第三个是正确的。你可以随心所欲地改变......
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="3">
<TextView
android:id="@+id/tv_textview"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="left|center_vertical|center_horizontal"
android:text="AAP 500" />
<TextView
android:id="@+id/tv_textview2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center|center_vertical|center_horizontal"
android:text="85.65" />
<TextView
android:id="@+id/tv_textview3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right|center_vertical|center_horizontal"
android:text="-3.75(-3.34 %)" />
</LinearLayout>
【解决方案2】:
您需要使用具有水平方向的 LinearLayout,然后对其中的每个 textview 应用权重。这将导致它们各自占据布局的一部分。您可以首先给它们每个权重 1 并从那里进行调整。最右边的文本视图也需要文本右对齐以匹配图片。
【解决方案3】:
您必须创建自定义 listView,您的 item_row_view.xml 将如下所示
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/tv_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_weight="1"
android:text="AAP 500"
android:textAlignment="center" />
<TextView
android:id="@+id/tv_textview2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="85.65"
android:textAlignment="center" />
<TextView
android:id="@+id/tv_textview3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="-3.75(-3.34 %)"
android:textAlignment="center" />
</RelativeLayout>