2

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

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

替代文字

这是我的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>

知道我做错了什么吗?

非常感谢,

菲利普

4

2 回答 2

7

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

您的 XML 文件中有相互矛盾的陈述。你有:

android:layout_alignParentBottom="true"

在您的两个文本视图中。你还有:

android:layout_below="@+id/firstLine"

在其中一个文本视图中。本质上,您尝试与相对布局的底部对齐,然后尝试在其下方放置一些东西。没有任何东西“在底部”。

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

于 2010-11-21T14:10:37.567 回答
3

我不是 100% 确定这是否是问题所在,但在您TextView的 ID上,您firstLine似乎正在将其与它的父母底部对齐,就像您对TextViewID所做的那样secondLine。我很确定你想说的是android:layout_alignParentTop="true"

我不知道为什么它可以在 Android 1.6 上运行,但不能在 2.2 上运行。

于 2010-11-21T14:01:19.323 回答