在android上创建列表(可扩展)项目内的垂直线

时间:2013-10-07 17:50:40

标签: android listview listitem

所以我试图在我的可扩展列表的子项列表中创建一行,它不会工作,这是我的布局:

<?xml version="1.0" encoding="utf-8"?>

                           

<RelativeLayout
    android:id="@+id/rows"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:visibility="visible"
    android:layout_toLeftOf="@id/checkBox_view" >

    <LinearLayout
        android:id="@+id/row1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/row1_column1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="left"
            android:layout_weight="1"
            android:gravity="left"/>

        <TextView
            android:id="@+id/row1_column2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:gravity="right"/>
    </LinearLayout>

    <LinearLayout
        android:id="@+id/row2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/row1"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/row2_column1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="left"
            android:layout_weight="1"
            android:gravity="left"/>

        <TextView
            android:id="@+id/row2_column2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:gravity="right"/>
    </LinearLayout>

    <LinearLayout
        android:id="@+id/row3"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/row2" >

        <TextView
            android:id="@+id/row3_column1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="left"
            android:layout_weight="1"
            android:gravity="left"
            />

        <TextView
            android:id="@+id/row3_column2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:gravity="right"
            />
    </LinearLayout>
</RelativeLayout>

<View
    android:id="@+id/separator"
    android:layout_width="1dp"
    android:layout_height="match_parent"
    android:background="@color/border_grey"
    android:layout_toEndOf="@id/rows"
    android:layout_alignParentBottom="true"/></RelativeLayout>                                       

它基本上是一个相对布局,其中包含一个包含textview和checkbox的linearlayout以及一个包含每行所有文本字段的relativelayout:

/////////////////////////////||//////////////////
//  String 1_1 // String 1_2 ||                //
/////////////////////////////||                //
//  String 2_1 // String 2_2 ||  TXT :CHECKBOX //
/////////////////////////////||                //
//  String 3_1 // String 3_2 ||                //
/////////////////////////////||//////////////////

但最后一个应该绘制垂直视图的视图不起作用,我尝试了很多使用线性布局的替代方案,但仍然不起作用。

2 个答案:

答案 0 :(得分:2)

试试这个

编辑:添加了分隔符:)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingLeft="3dp" >

<LinearLayout
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:orientation="vertical"
    android:paddingLeft="3dp" >

    <LinearLayout
        android:id="@+id/row1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/row1_column1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" />

        <TextView
            android:id="@+id/row1_column2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/row2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/row2_column1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" />

        <TextView
            android:id="@+id/row2_column2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/row3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/row3_column1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" />

        <TextView
            android:id="@+id/row3_column2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </LinearLayout>
</LinearLayout>

<View
    android:id="@+id/separator"
    android:layout_width="1dp"
    android:layout_height="match_parent"
    android:layout_alignParentBottom="true"
    android:layout_toEndOf="@id/rows"
    android:background="@color/border_grey" />

<LinearLayout
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:gravity="center"
    android:orientation="vertical"
    android:paddingLeft="3dp" >

    <LinearLayout
        android:id="@+id/checkBox_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingLeft="3dp" >

        <TextView
            android:id="@+id/checkbox_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="cancelar?" />

        <CheckBox
            android:id="@+id/checkBox_state"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@android:drawable/checkbox_off_background"
            android:focusable="false"
            android:focusableInTouchMode="false" />
    </LinearLayout>
</LinearLayout>

答案 1 :(得分:1)

问题是分隔符没有指定绘制的实际“区域”,只是通过对齐底部不会指定起点和终点,如果你有两个元素要说,它们下面和上面它会按照您的预期绘制,其他选项将使用“根布局”作为LinearLayout orientation Horizo​​ntal,并首先设置您的行,然后使用此代码设置分隔符:

<View
    android:layout_width="1dp"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:background="#FFFF"/>

然后是复选框。

这应该可以解决问题。

希望这有帮助。

问候!