android – RelativeLayout在1.5和2.1之间的差异

我有一个ListView,其中包含由RelativeLayouts组成的项目.这是列表项中的相关
XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/xx"
        android:gravity="center_vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_centerInParent="true" 
        android:layout_alignParentLeft="true"/>

    <TextView
        android:id="@+id/title"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/xx" />

    <TextView
        android:id="@+id/tag"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/xx"
        android:layout_below="@id/title" />

    <TextView
        android:id="@+id/subtitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/tag"
        android:layout_below="@id/title" />

</RelativeLayout>

在Android 2.1(在Nexus One上测试)中,这显示了所需的行为:Android 1.5 http://img42.imageshack.us/img42/7668/85324076.png

然而,在Android 1.5上(在HTC Hero上测试过),它显示如下:Android 1.5 http://img257.imageshack.us/img257/2849/72229324.png

[编辑]在1.6(模拟器)上,它也按预期工作.

左上角的小灰线是第一张照片中显示的“xx”,因此它应该是垂直居中的.据我所知,XML决定了这一点,但由于某种原因,1.5忽略了它.

为什么是这样?我找不到任何关于这种差异的东西,而且我已经粗暴地强迫layout_center,center,alignParent *的任何组合,但无济于事……

任何人都可以对此有所了解吗?谢谢!

最佳答案 对于相对布局,不使用layout_gravity.

此外,您正在使用冲突的属性centerInParent和alignParentLeft.

只使用其中一个.

你可以使用layout_centerVertical =“true”layout_alignParentLeft =“true”

点赞