ListView在抽屉ListView的顶部

时间:2014-03-03 04:03:08

标签: android android-layout android-listview android-activity slidingdrawer

我想在同一个主要活动中有2个listview。我的水平抽屉的一个列表视图(从左侧滑动),中心的另一个列表视图。当我点击抽屉时它会显示抽屉列表视图,但是抽屉视图没有滑过中心列表视图而是中心位于它上面,所以我实际上看不到抽屉里的任何东西。我想知道我的main_activity.xml是否存在我的res / layout目录有什么问题(我实际上不确定这是否是在一个活动中放置两个列表视图的正确方法)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                tools:context=".MainActivity" >

            <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">

                 <ListView android:id="@+id/drawer"
                           android:layout_width="240dp"
                           android:layout_height="match_parent"
                           android:layout_gravity="start"
                           android:choiceMode="singleChoice"
                           android:divider="@android:color/transparent"
                           android:dividerHeight="0dp"
                           android:background="#111"/>

            </android.support.v4.widget.DrawerLayout>

            <ListView android:id="@+id/deviceList"
                      android:layout_width="fill_parent"
                      android:layout_height="wrap_content"
                      android:divider="#b5b5b5"
                      android:dividerHeight="1dp"
                      android:listSelector="@drawable/list_selector" />

</RelativeLayout>   

2 个答案:

答案 0 :(得分:1)

我认为您可以通过在DrawerLayout之前使用ListView(用LinearLayout包装)来重新排序它

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/deviceList"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:divider="#b5b5b5"
        android:dividerHeight="1dp"
        android:drawSelectorOnTop="false"
        android:listSelector="@drawable/device_list_item_selector"
        android:scrollbarStyle="outsideOverlay" />
</LinearLayout>

<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="fill_parent" >

    <ListView
        android:id="@+id/left_drawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="#111"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp" />
</android.support.v4.widget.DrawerLayout>

并确保两者的layout_height都有fill_parent

答案 1 :(得分:1)

试试这个: -

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/relative"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <!-- A DrawerLayout is intended to be used as the top-level content view using match_parent for both width and height to consume the full space available. -->

    <android.support.v4.widget.DrawerLayout
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <!--
         As the main content view, the view below consumes the entire
         space available using match_parent in both dimensions.
        -->

        <android.support.v4.view.ViewPager
            android:id="@+id/view_pager"
            android:layout_width="wrap_content"
            android:layout_height="match_parent" />

        <RelativeLayout
            android:id="@+id/relative1"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >

            <ListView
                android:id="@+id/lst_week"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_alignParentTop="true"
                android:dividerHeight="1dp" >
            </ListView>
        </RelativeLayout>

        <FrameLayout
            android:id="@+id/content_frame"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

        <ListView
            android:id="@+id/left_drawer"
            android:layout_width="300dp"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            android:choiceMode="singleChoice"
            android:dividerHeight="0.5dp" />
    </android.support.v4.widget.DrawerLayout>

</RelativeLayout>