Использование действий с ящиком, прокручивая панель инструментов, вкладки и различные фрагменты

Я ищу лучшие практики, когда дело доходит до следующих довольно распространенных настроек:

Что я сейчас делаю:

Моя основная деятельность имеет навигационный ящик и панель инструментов. Когда вы нажимаете на один из элементов списка внутри ящика, под панелью инструментов загружается фрагмент. Некоторые фрагменты имеют свои собственные вкладки внутри, используя viewpager ect.

Я хотел бы использовать материальные функции, такие как скрытие панели инструментов во время прокрутки и т. Д. Это не проблема, чтобы сделать это. Но есть проблема, когда только некоторые ваши фрагменты хотели бы использовать панель прокрутки. Использование обычного Scrollview действительно решает проблему, если вы можете добавить дополнительное поле внизу, но если у вас есть клавиатура, она испортится из-за неправильной прокрутки. Использование nestedscrollview работает, но прокручивает панель инструментов. Итак, как я могу избежать прокрутки панели инструментов, когда моя деятельность содержит панель инструментов и некоторые фрагменты, которые прокрутка должна использовать, а некоторые нет?

Это архитектурный дизайн не так? Еще я подумал, что внутри каждого фрагмента должны быть разные панели инструментов... но они должны использовать один и тот же блок навигации, поэтому вам нужно каждый раз создавать и добавлять кнопку ToggleButton? Это правильный подход? Должен ли я пойти по этому пути? Я не убежден и хотел бы иметь мнение кого-то более опытного, чем я. Какое лучшее решение в этом случае.

Ценю твою помощь! ура

РЕДАКТИРОВАТЬ: Основная деятельность

<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">


<android.support.design.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/fragment_container_first"

    >

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        >


        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?android:attr/actionBarSize"
            app:layout_scrollFlags="scroll|enterAlways"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

        </android.support.v7.widget.Toolbar>


    </android.support.design.widget.AppBarLayout>


    <LinearLayout
        android:id="@+id/owner_main_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/appBar"
        android:orientation="horizontal"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab_add"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="@dimen/fab_margin"
        android:src="@drawable/addicon"
        app:fabSize="normal"
        app:layout_anchor="@id/owner_main_container"
        app:layout_anchorGravity="bottom|right|end"
        app:layout_behavior="xxx.Classes.Misc.ScrollAwareFABBehavior"
        />

</android.support.design.widget.CoordinatorLayout>
<!-- The navigation drawer -->
<android.support.design.widget.NavigationView
    android:id="@+id/navigation_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    app:menu="@menu/drawerhost" />

1 ответ

Я также использую навигационный ящик и панель инструментов, пожалуйста, импортируйте проект по этой ссылке и попытайтесь понять, как использовать навигационный ящик и панель инструментов, используя фрагмент

Другие вопросы по тегам