我正在尝试为ListView行构建自定义视图。下面是我的行
Img | Text 1
|------------
Text | Text 2
以下是我用于生成行视图的布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<RelativeLayout
android:id="@+id/icon_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_margin="10dp"
android:padding="10dp" >
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="60dp"
android:layout_centerHorizontal="true"
android:layout_marginBottom="10dp"
android:contentDescription="@string/app_name"/>
<TextView
android:id="@+id/status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/icon"
android:layout_centerHorizontal="true"
android:text="STATUS" />
</RelativeLayout>
<View
android:id="@+id/ver_divider"
android:layout_width="2dp"
android:layout_height="fill_parent"
android:layout_alignBottom="@id/icon_status"
android:layout_alignTop="@id/icon_status"
android:layout_toRightOf="@id/icon_status"
android:background="@android:color/black" />
<View
android:id="@+id/hor_divider"
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:layout_toRightOf="@id/ver_divider"
android:background="@android:color/black" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignBottom="@id/icon_status"
android:layout_alignTop="@id/icon_status"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_toRightOf="@id/ver_divider"
android:background="#99FF0000"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center"
android:text="Test ME" />
<TextView
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center"
android:text="Test ME" />
</LinearLayout></RelativeLayout>
列表视图非常简单,没有自定义。
文本1和文本2与水平分隔符的距离相等。当我尝试使用layout_below在分隔符下面设置Text2时,它不起作用。在上面的布局中,我尝试创建一个带有全高视图的linearlayot,然后使用权重设置两个相同高度的文本视图,这也不起作用。
虽然相同的代码在Android 5.0上运行正常但在android 4.4.4或更低版本上失败。
任何帮助都非常感谢..不知道我该怎么做才能使它在android 4.x.x上运行
答案 0 :(得分:0)
在layout_below
上设置Text 2
无效,因为父级是LinearLayout
。我会把hor_divider
放在LinearLayout
里面,就像这样:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignBottom="@id/icon_status"
android:layout_alignTop="@id/icon_status"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_toRightOf="@id/ver_divider"
android:background="#99FF0000"
android:orientation="vertical"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Test ME" />
<View
android:id="@+id/hor_divider"
android:layout_width="match_parent"
android:layout_height="2dp"
android:background="@android:color/black" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Test ME" />
</LinearLayout>
然后,您可以为padding
和Text 1
添加一些Text 2
以创建更多空间。