我有两个listviews listview2和listview3
我想要的是listview3应该显示在listview2下面但它会重叠
如何获得正确的输出,即一个在另一个下面显示
最后一个ListView是导航抽屉
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/listview2"
android:layout_width="match_parent"
android:layout_height="match_parent"
></ListView>
</RelativeLayout>
<RelativeLayout
android:layout_below="@id/container"
android:id="@+id/container1"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/listview3"
android:layout_width="match_parent"
android:layout_height="match_parent"
></ListView>
</RelativeLayout>
<ListView
android:id="@+id/drawerlist"
android:background="#0099CC"
android:cacheColorHint="#00000000"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="left" ></ListView>
</android.support.v4.widget.DrawerLayout>
答案 0 :(得分:3)
将LinearLayout与weight属性一起使用。
<LinearLayout
android:id="@+id/container"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/listview2"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="5"/>
<ListView
android:id="@+id/listview3"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="5" />
</LinearLayout>
答案 1 :(得分:0)
第一个RelativeLayout占据屏幕的整个高度。您需要限制第一个RelativeLayout的高度,否则第二个RelativeLayout将始终不在View中。
答案 2 :(得分:0)
**重叠因为: 1.您将列表的高度设置为:match_parent
试试这个:
<RelativeLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/listview1"
android:layout_width="match_parent"
android:layout_height="wrap_content"></ListView>
<ListView
android:id="@+id/listview2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/listview1"></ListView>
<ListView
android:id="@+id/listview3"
android:layout_below="@id/listview2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
></ListView>
</RelativeLayout>
答案 3 :(得分:0)
您可以使用layout_weight
属性使listview
两个身高相同。
例如,您可以按照以下层次结构 -
<LinearLayout orientation="vertical">
<ListView layout_weight=1></ListView>
<ListView layout_weight=1></ListView>
</LinearLayout>
答案 4 :(得分:0)
将两个ListView嵌套在相同的相对布局块中,一个接一个地嵌套。给他们两个相同的重量
<RelativeLayout
android:id="@+id/container
...
<ListView
android:id="@+id/listview2"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1"
...
></ListView>
<ListView
android:id="@+id/listview3"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:layout_below="@id/listview2"
...
></ListView>
</RelativeLayout>
我无法对此进行测试,因此可能需要进行一些调整,但请试一试。
我还建议您在发布时花一些时间格式化代码,因为它有助于我们弄清楚您在做什么。
答案 5 :(得分:0)
取自https://developer.android.com/reference/android/support/v4/widget/DrawerLayout.html
要使用DrawerLayout,请将主要内容视图定位为 第一个孩子的宽度和高度为match_parent。添加抽屉为 主要内容视图后的子视图并设置layout_gravity 适当。抽屉通常使用match_parent作为高度 固定宽度。
所以你的第二个RelativeLayout和抽屉列表都是抽屉。无论如何,它还不清楚你想要实现什么,所以你必须更详细地描述它。如果你想让listview3从底部和listview2上来为它腾出空间,你将不得不使用不同的布局或将listview3设置为特定的高度,并将你的第一个RelativeLayout设置为精确的高度(使用ValueAnimator获取底部边距I&# 39; d说)。
编辑: 在阅读了你的评论之后,它似乎不是你想要实现的东西。在这种情况下,我上面描述的是罪魁祸首,即第二个RelativeLayout被解释为抽屉。确保将RelativeLayouts组合到单个布局(最好是带有权重的LinearLayout)。