我正在尝试使用空视图来指示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
感谢。
答案 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
。这似乎对我有用。