导航抽屉 - 水平方向重叠的项目

时间:2014-01-06 10:18:01

标签: android android-listview navigation-drawer

在我的导航抽屉中,我有一个ListView,下面是一些ImageButtons。要在屏幕底部的顶部和其余视图上显示Listview,我使用了相对布局,如下所示。

在这种情况下,当我将手机旋转到水平方向时(例如,显示ListView和其他人的长度不够),ImageButtons会重叠ListView(就像HTML中的浮动DIV一样)。

我尝试使用LinearLayout和layout_gravity =“bottom”作为ImageButtons的容器,但是按钮被放置在Listview附近,而不是放在scren的底部。

请指导我如何正确实现这一点。

<!-- Framelayout to display Fragments -->
<FrameLayout
    android:id="@+id/frame_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<RelativeLayout
    android:id="@+id/drawer"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="start">

    <ListView
        android:id="@+id/list_slidermenu"
        android:layout_width="240dp"
        android:layout_height="wrap_content"
        android:layout_gravity="start" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true" >
        <LinearLayout
            android:id="@+id/extrabuttons"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
            <ImageButton
                android:id="@+id/credit"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/information" />

            <ImageButton
                android:id="@+id/exit"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ic_exit" />
        </LinearLayout>

        <TextView
            android:id="@+id/ad"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/extrabuttons"
            android:gravity="start"
            android:text="@string/ad_tag" />
    </RelativeLayout>
</RelativeLayout>

这就是它应该看起来像&amp;如何在垂直模式下看起来像 enter image description here

这是水平模式下的样子 enter image description here

3 个答案:

答案 0 :(得分:0)

然后尝试这样做

<LinearLayout
    android:id="@+id/drawer"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/list_slidermenu"
        android:layout_width="240dp"
        android:layout_height="0dp"
        android:layout_gravity="start"
        android:layout_weight="6" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >

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

            <ImageButton
                android:id="@+id/credit"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ic_launcher" />

            <ImageButton
                android:id="@+id/exit"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ic_launcher" />
        </LinearLayout>

        <TextView
            android:id="@+id/ad"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/extrabuttons"
            android:gravity="start"
            android:text="string/ad_tag" />
    </RelativeLayout>
</LinearLayout>

答案 1 :(得分:0)

布局组件重叠,因为您使用了相对布局作为父级。尝试使用垂直方向的线性布局,而不是相对布局。

答案 2 :(得分:0)

我知道我的答案有点迟了。我建议制作单独的xml布局,并使用'addFooterView'方法将此布局添加到listview。它将xml始终绑定在该列表视图的最后。我希望它会对你有所帮助。