所以我试图在我的可扩展列表的子项列表中创建一行,它不会工作,这是我的布局:
<?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 || //
/////////////////////////////||//////////////////
但最后一个应该绘制垂直视图的视图不起作用,我尝试了很多使用线性布局的替代方案,但仍然不起作用。
答案 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 Horizontal,并首先设置您的行,然后使用此代码设置分隔符:
<View
android:layout_width="1dp"
android:layout_height="0dp"
android:layout_weight="1"
android:background="#FFFF"/>
然后是复选框。
这应该可以解决问题。
希望这有帮助。
问候!