我可以使用相同的框架布局(作为容器)来显示DrawerLayout和RecyclerView吗?

时间:2015-04-26 07:21:57

标签: android layout android-recyclerview drawerlayout

我有一个使用RecyclerView布局的导航抽屉。同时,我的主页也使用RecyclerView布局。如何以最佳方式进行管理?

这是我的 activity_main.xml

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">

<!--Toolbar-->
<include
    android:id="@+id/toolbar_actionbar"
    layout="@layout/toolbar_default"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

<!-- A RecyclerView with some commonly used attributes -->
<android.support.v7.widget.RecyclerView
    android:id="@+id/my_recycler_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scrollbars="vertical" />

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:baselineAlignBottom="true"
    android:layout_marginBottom="12dp"
    android:src="@mipmap/ic_action_good" />

<!--Mulai layout drawer-->
<android.support.v4.widget.DrawerLayout
    android:id="@+id/drawer"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/toolbar_actionbar">

    <FrameLayout
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clickable="true">
        </FrameLayout>

    <!--Fragment Drawer-->
    <fragment
        android:id="@+id/fragment_drawer"
        android:name="com.mundane.hortipedia.NavigationDrawerFragment"
        android:layout_width="@dimen/navigation_drawer_width"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:layout="@layout/fragment_navigation_drawer" />
</android.support.v4.widget.DrawerLayout>

我只是想从sqlite数据库中获取数据并将它们显示给R.id.my_recycler_view。但它不起作用。

1 个答案:

答案 0 :(得分:1)

尝试将其作为主要布局,根据android指南,drawerlayout必须是root容器,因为drawerlayout的第一个子容器是主页面,第二个子容器是抽屉。

<?xml version="1.0" encoding="utf-8"?>
<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">

    <FrameLayout
        android:id="@+id/fl_main_container"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <!-- A RecyclerView with some commonly used attributes -->
        <android.support.v7.widget.RecyclerView
            android:id="@+id/my_recycler_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scrollbars="vertical" />

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:baselineAlignBottom="true"
            android:layout_marginBottom="12dp"
            android:src="@mipmap/ic_action_good" />

        <!--Toolbar-->
        <include
            android:id="@+id/toolbar_actionbar"
            layout="@layout/toolbar_default"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

    </FrameLayout>

    <!--Framelayout Drawer-->
    <FrameLayout
        android:id="@+id/fl_drawer_container"
        android:layout_width="give the desired width here"
        android:layout_height="fill_parent">

        <android.support.v7.widget.RecyclerView
            android:id="@+id/my_recycler_view2"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scrollbars="vertical" />
    </FrameLayout>

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

我希望这会有所帮助