我想在linear layout with horizontal orientation
的同一行创建2个可展开的ListView,具有以下效果(取决于展开的列表)
预期行为:
**********************************************
* v list1 | v list2 *
**********************************************
* Item1 List1 or List2 *
* Item2 List1 or List2 *
* Item3 List1 or List2 *
* Item4 List1 or List2 *
* Item5 List1 or List2 *
* Item6 List1 or List2 *
**********************************************
点击提示时,这些项可以是list1
或list2
的项目。因此需要在宽度上设置match parent
。
这就是我现在所拥有的(当点击list1时,我扩展的第一部分只有父宽度的3/4,当点击list2时我只有第二部分:
当前行为:点击list1
时*************************************************
* v list1 | v list2 *
*************************************************
* Item1 List1 * *
* Item2 List1 * *
* Item3 List1 * *
* Item4 List1 * *
* Item5 List1 * *
* Item6 List1 * *
*************************************************
当前行为:点击list2
*************************************************
* v list1 | v list2 *
*************************************************
* * Item1 List2 *
* * Item2 List2 *
* * Item3 List2 *
* * Item4 List2 *
* * Item5 List2 *
* * Item6 List2 *
*************************************************
所以列表项没有父宽度。
我做过这样的事情:
<LinearLayout
android:id="@+id/adm_ll_media"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:orientation="horizontal" >
<ExpandableListView
android:id="@+id/adm_list_media"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="left" />
<ExpandableListView
android:id="@+id/adm_add_media"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="3"
android:layout_gravity="right" />
</LinearLayout>
但从逻辑上讲,其中一个占线性布局宽度的3/4,另一个占1/4。所以我想做的只是让提示占用父宽度的1/4和3/4。
你对此有什么想法吗?
答案 0 :(得分:0)
使用android:layout_weight
属性时,您应将android:layout_width
属性设置为0dp
:
<LinearLayout
android:id="@+id/adm_ll_media"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:orientation="horizontal"
android:weightSum="4"
>
<ExpandableListView
android:id="@+id/adm_list_media"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="left" />
<ExpandableListView
android:id="@+id/adm_add_media"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="3"
android:layout_gravity="right" />
</LinearLayout>
答案 1 :(得分:0)
如果提示你的意思是标签(v list1),而扩展元素意味着你的列表,那么我相信你应该尝试在你的两个列表上添加一个单独的TextView,它将像你的提示一样工作。为它们分配权重(对于1/4和3/4比率),然后为您的列表分配包装内容的宽度。
<LinearLayout
android:id="@+id/adm_ll_media"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="v list1">
<TextView
android:layout_width="0dp"
android:layout_weight="3"
android:layout_height="wrap_content"
android:text="v list2">
</LinearLayout>
Your ListViews here with a layout_width of match_parent, within an another LinearLayout with layout_width = match_parent
</LinearLayout>