2

我在ListView. 目前它们的显示如下:

在此处输入图像描述

但我需要它们垂直居中,例如

在此处输入图像描述

我使用以下 AXML 作为每个列表项的定义:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/widget32"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <Switch
        android:id="@+id/switchOutput"
        android:layout_width="250dp"
        android:layout_height="wrap_content"
        android:text="[Output Name]"
        android:gravity="center_vertical" />
    <ImageButton
        android:id="@+id/imgTime"
        android:background="@null"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/datetime"
        android:scaleType="fitCenter"
        android:layout_alignParentRight="true" />
</RelativeLayout>

我认为android:gravity="center_vertical"足以让它们正确显示,但它似乎不起作用。我需要什么才能使每个列表项中的开关垂直居中?

4

4 回答 4

3

添加android:layout_centerVertical="true"...这将使该子项在其父项中垂直居中...

layout_centerVertical

注意:-父布局必须是RelativeLayout..

OP 编辑​​:这是现在正确居中的布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/widget32"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <Switch
        android:id="@+id/switchOutput"
        android:layout_width="250dp"
        android:layout_height="wrap_content"
        android:text="[Output Name]"
        android:layout_centerVertical="true" />
    <ImageButton
        android:id="@+id/imgTime"
        android:background="@null"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/datetime"
        android:scaleType="fitCenter"
        android:layout_alignParentRight="true" />
</RelativeLayout>
于 2013-08-28T11:34:49.790 回答
0

你的意思是这样吗?

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widget32"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >

<Switch
    android:id="@+id/switchOutput"
    android:layout_width="250dp"
    android:layout_height="match_parent"
    android:layout_alignBottom="@+id/imgTime"
    android:layout_gravity="center_vertical"
    android:gravity="center_vertical"
    android:text="[Output Name]" />

<ImageButton
    android:id="@+id/imgTime"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:background="@null"
    android:scaleType="fitCenter"
    android:src="@drawable/datetime" />

</RelativeLayout>
于 2013-08-28T11:32:38.647 回答
0

您必须将center标签设置为父级RelativeLayout

于 2013-08-28T11:24:21.207 回答
0

您可以使用:

android: layout_centerVertical = "true".
于 2013-08-28T11:35:04.710 回答