如何在导航抽屉中集成可扩展列表视图?

时间:2019-02-07 08:50:36

标签: android navigation-drawer expandablelistview

我为可扩展列表视图创建了一个项目。另外,在我的另一个主要项目中,我创建了一个导航抽屉。一切正常,因为它是自己的。不幸的是,我想在导航抽屉中显示此可扩展列表视图,但我不知道从哪里开始。我觉得应该添加一些小东西(已经有适配器和东西了),但说真的,我不知道如何实现抽屉内的布局。我搜索了这个主题,所有示例和答案对我来说都不是很清楚。

您能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:0)

进行自定义布局以使用自定义导航视图,如以下(layout_nav_bar.xml)中所述:-

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/color_white"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <include
        android:id="@+id/nav_header"
        layout="@layout/nav_header_main"
        />

    <ExpandableListView
        android:id="@+id/expandableListView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:scrollbars="none"
        android:overScrollMode="never"
        android:background="@android:color/white"
        android:divider="@null"
        android:groupIndicator="@null" />

</LinearLayout>

将此添加到您的DrawerLayout

<include
        android:id="@+id/nav_view"
        layout="@layout/layout_nav_bar"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        android:layout_height="match_parent"
        android:layout_width="match_parent"/>

答案 1 :(得分:0)

您可以通过在ExpandableListView中添加NavigationDrawer来完成此操作,如下所示:

您可以使用自定义ListView创建它。

参见下面的代码activity_navigation_view.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
    android:id="@+id/drawer_layout"
    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"
    android:fitsSystemWindows="true">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />

    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true">

        <ExpandableListView
            android:id="@+id/navigationmenu"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_marginTop="192dp"
            android:background="@android:color/white">
        </ExpandableListView>
    </android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>

然后只需为其创建适配器,然后像普通的ExpandableListView一样使用它即可。