Android查看背景布局问题

时间:2011-06-08 00:34:09

标签: android listview layout background-color

我正在尝试使用空视图来指示ListView中每个项目的颜色。

这个想法是rowColor View只是一个3dp宽的行,它应该自动调整为secondLine和thirdLine的高度(请注意,所有内容都在代码中设置,包括rowColor的背景颜色,firstLine和thirdLine是经常设置为GONE)。

它完全出现在Eclipse的图形布局中,但是我的手机上没有显示rowColor(运行2.3.3)并且所有视图都堆叠在一起。知道怎么解决吗?

here采用了list_row的以下代码。我已经提供了我认为基于该布局工作的所有代码,但是甚至没有关闭。这种布局是否仍然有效?

list_row.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_alignParentTop="true"
    android:layout_alignParentLeft="true"

    android:singleLine="true"
    android:text="First Line" />

<View
    android:id="@+id/rowColor"
    android:background="#FF0000"

    android:layout_width="3dp"
    android:layout_height="fill_parent"

    android:layout_below="@id/firstLine"
    android:layout_alignParentBottom="true" />

<TextView
    android:id="@+id/thirdLine"

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

    android:layout_toRightOf="@id/rowColor"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"

    android:singleLine="true"
    android:text="Third Line" />

<TextView
    android:id="@+id/secondLine"

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

    android:layout_toRightOf="@id/rowColor"
    android:layout_alignParentRight="true"
    android:layout_below="@id/firstLine"
    android:layout_above="@id/thirdLine"
    android:layout_alignWithParentIfMissing="true"

    android:gravity="center_vertical"
    android:singleLine="true"
    android:text="Second Line" />
</RelativeLayout>

main.xml中:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView
    android:id="@+id/android:list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/>
</LinearLayout>

ListViewTest.java活动在这里:http://pastie.org/2035822

感谢。

2 个答案:

答案 0 :(得分:0)

我在几个模拟器中测试了你的布局(从2.1到2.3.3)并且它可以正常工作,无论是否设置了View.GONE的第一个TextView可见性。

它必须是您的代码中的问题,或者是您的特定设备的故障。

作为解决方法,您可以使用:

android:layout_height="0dp"

用于你的rowColor视图。由于您已使用android:layout_below="@id/firstLine"android:layout_alignParentBottom="true"定义了上限和下限的位置,因此layout_height的实际值无关紧要。

答案 1 :(得分:0)

我最近遇到了这个问题,我发现除了背景颜色之外没有任何内容的View不会出现在RelativeLayout中。

如果可以,请尝试将布局转换为LinearLayout。这似乎对我有用。