0

我的 CustomAdapter 有以下 xml 文件:

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

    android:padding="6dip">

    <TextView
        android:id="@+id/firstLine"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/nullline"
        android:layout_alignParentBottom="true"
        android:gravity="center_vertical"
        android:text="My Application"
        android:textColor="#0099CC" />

    <TextView
        android:id="@+id/nullline"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_above="@+id/secondLine"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:textColor="#0099CC"
        android:text="seas" />

    <TextView
        android:id="@+id/secondLine"
        android:layout_width="fill_parent"
        android:layout_height="26dip"
        android:layout_alignBottom="@+id/firstLine"
        android:layout_alignLeft="@+id/firstLine"
        android:ellipsize="marquee"
        android:singleLine="true"
        android:text="Secondline"
        android:textColor="#0099CC" />

</RelativeLayout>

现在,我尝试通过添加来格式化它,layout_above但我的一个 TextViews 显示在另一个之上。

我要显示的是

文本视图一

文本视图二

文本视图三

layout_below如果不起作用,我该如何显示它?

4

3 回答 3

1

这就像你想要的那样工作(如果我理解你的话......)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"

android:padding="6dip">

<TextView
    android:id="@+id/firstLine"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:gravity="center_vertical"
    android:text="My Application"
    android:textColor="#0099CC" />

<TextView
    android:id="@+id/nullline"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/firstLine"
    android:textColor="#0099CC"/>

<TextView
    android:id="@+id/secondLine"
    android:layout_width="fill_parent"
    android:layout_height="26dip"
    android:layout_below="@+id/nullline"
    android:ellipsize="marquee"
    android:singleLine="true"
    android:text="Secondline"
    android:textColor="#0099CC" />

如果你用得好,layout_below 就可以工作:)

于 2013-05-09T15:59:11.330 回答
1

layout_below确实有效。LinearLayout但是,这里最简单的方法是使用 vertical使其成为 a orientation。但是我在这里看到的一些错误是

 <TextView
    android:id="@+id/nullline"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/secondLine"
    android:layout_alignParentLeft="true"
    android:textColor="#0099CC"
    android:text="seas" />

heightfill_parent,你有alignParentRightalignParentLeft设置为true。这似乎会占据整个屏幕。尝试类似的东西

<TextView
    android:id="@+id/firstLine"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:gravity="center_vertical"
    android:text="My Application"
    android:textColor="#0099CC" />

<TextView
    android:id="@+id/nullline"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/firstLine"
    android:layout_alignParentLeft="true"
    android:textColor="#0099CC"
    android:text="seas" />

<TextView
    android:id="@+id/secondLine"
    android:layout_width="fill_parent"
    android:layout_height="26dip"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/nullLine"
    android:ellipsize="marquee"
    android:singleLine="true"
    android:text="Secondline"
    android:textColor="#0099CC" />

我还没有机会测试它,但类似的东西应该让你开始。看起来您也有一些递归布局view1view2例如view2告诉view1. 似乎它应该做同样的事情,但它可能会导致递归错误

于 2013-05-09T15:59:47.600 回答
0

如果您还没有,我建议您阅读LayoutParameters 。RelativeLayout

这些视图相互重叠,因为您使用了错误的属性/属性来获取您需要获取的内容。例如:

android:layout_alignBottom="@+id/firstLine"

应该是:

android:layout_below="@+id/firstLine"

这是因为layout_alignBottom 使该视图的底部边缘与给定锚视图 ID 的底部边缘匹配,而layout_below 将该视图的顶部边缘定位在给定锚视图 ID 下方

于 2013-05-09T15:54:43.890 回答