【发布时间】:2017-02-22 01:01:06
【问题描述】:
我在 Android ListView 中有几种不同的项目视图类型,每一种都有自己的 LinearLayout。除了相对于彼此水平放置之外,我还试图将它们的所有小部件垂直居中。请参阅附图中 ListView 中的第一项。它看起来不错,只是小部件被推到靠近 ListView 项目的顶部。
TextView 和 ImageViews 的浅蓝色和浅绿色背景旨在帮助查看 xml 对放置的影响。图片下方是我对 ListView 中最顶层项目的布局。如何使 TextView 以及圆形图像 (ImageView) 垂直居中?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:paddingBottom="5dp">
<TextView
android:id="@+id/ques_num"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:layout_marginTop="2dp"
android:layout_marginBottom="2dp"
android:background="@color/LightBlue"
android:text="0."
android:textSize="22sp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="center_vertical"
android:background="@color/LightGreen"
android:adjustViewBounds="true"
android:id="@+id/question_id_0" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="center_vertical"
android:background="@color/LightGreen"
android:adjustViewBounds="true"
android:id="@+id/question_id_1" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="center_vertical"
android:background="@color/LightGreen"
android:adjustViewBounds="true"
android:id="@+id/question_id_2" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="center_vertical"
android:background="@color/LightGreen"
android:adjustViewBounds="true"
android:id="@+id/question_id_3" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="center_vertical"
android:background="@color/LightGreen"
android:adjustViewBounds="true"
android:id="@+id/question_id_4" />
</LinearLayout>
更新:
我尝试简单地添加到 LinearLayout:
android:gravity="center_horizontal"
然后尝试将其更改为:
android:gravity="center_horizontal|center_vertical"
在这两种情况下,它都会将小部件移动到 ListView 项目的水平中心,但对垂直定位没有影响。在图片中查看结果:
【问题讨论】:
-
将 android:gravity="center_horizontal|center_vertical" 添加到线性布局中。
-
这并没有改变垂直位置,虽然它确实改变了水平定位,这不是我需要的。我编辑了这个问题,并发布了一张我尝试这样做时会发生什么的图片。
标签: android listview android-linearlayout vertical-alignment listviewitem