在2.2中的RelativeLayout中重叠TextView项; 1.6中没问题

时间:2010-11-21 13:49:26

标签: android overlap relativelayout

我的RelativeLayout包含两个TextView和一个ImageView,我用它来显示ListView中的项目。这些项目在Android 1.6上正确显示,但在Android 2.2上,TextView重叠。

这是一张并排显示正确和错误行为的图片:

alt text

这是我的RelativeLayout的源代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:padding="6dip">

<ImageView
    android:id="@+id/icon"

    android:layout_width="wrap_content"
    android:layout_height="wrap_content"

    android:layout_alignParentTop="true"
    android:layout_alignParentBottom="true"
    android:layout_marginRight="6dip"
    />

<TextView
    android:id="@+id/secondLine"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"

    android:ellipsize="marquee"
    android:singleLine="true"

    android:layout_below="@+id/firstLine"
    android:layout_toRightOf="@id/icon"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
/>

<TextView
    android:id="@+id/firstLine"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"

    android:textStyle="bold"
    android:ellipsize="marquee"
    android:singleLine="true"

    android:layout_toRightOf="@id/icon"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
/>

</RelativeLayout>

知道我做错了吗?

非常感谢,

菲利普

2 个答案:

答案 0 :(得分:6)

这与Octavian的答案基本相同,但我认为他实际上并没有很好地解释它。

您的XML文件中存在矛盾的陈述。你有:

android:layout_alignParentBottom="true"

在两个文字视图中。你也有:

android:layout_below="@+id/firstLine"

在其中一个textview中。基本上,您尝试对齐相对布局的底部,然后尝试在其下面放置一些东西。 “底层没有任何东西。”

删除这个矛盾的逻辑,它应该可以解决你的问题。

答案 1 :(得分:3)

我不是100%确定是否是问题,但在TextView身份证明为firstLine的情况下,您似乎正在将其与父母一起调整,就像使用{{1}一样} ID TextView。我很确定你想说secondLine

我不明白为什么它适用于Android 1.6而不是2.2。