Как интегрировать расширяемый список в навигационный ящик? - PullRequest
0 голосов
/ 07 февраля 2019

Я создал проект для моего расширяемого списка.Кроме того, в моем другом основном проекте я создал навигационный ящик.Все отлично работает как есть.К сожалению, я хочу показать этот расширяемый список в моем блоке навигации, и я не знаю, с чего начать.Я чувствую, что должны быть незначительные дополнения (уже есть адаптер и прочее), но серьезно я понятия не имею о том, как реализовать макет внутри ящика.Я искал эту тему, и все примеры и ответы мне не так понятны.

Не могли бы вы указать мне правильное направление?

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Вы можете сделать это, добавив 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.

0 голосов
/ 07 февраля 2019

Создайте пользовательский макет для использования пользовательского вида навигации, как указано ниже в (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"/>
...