Снимок экрана 1 и Скриншот 2 моего приложения
Проблема в основном в следующем: PagerTitleStrip и RecyclerView располагаются ниже моей панели инструментов, хотя я установил layout_behaviour для своего ViewPager.
Подробнее:
У меня есть основное действие, которое использует макет ниже, а затем из него я запускаю фрагменты. Прежде чем попробовать CoordinatorLayout + ViewPager и все другие причудливые вещи, у меня был только FrameLayout, в котором я отображал свои фрагменты. Однако я решил, что хочу использовать
app:layout_scrollFlags="scroll|enterAlways"
приложение:layout_behavior="@string/appbar_scrolling_view_behavior"
так что моя панель инструментов исчезает, когда я прокручиваю recyclerview. Я обнаружил в Интернете, что FrameLayout не имеет поведения, позволяющего мне исправить положение recyclerView, идущего под панелью инструментов, и поэтому я перешел на ViewPager + CoordinatorLayout для управления своими фрагментами.
Однако это принесло несколько проблем. Чего я хочу добиться, так это того, что панель инструментов с прикрепленным к ней PagerTitleStrip, когда я прокручиваю панель инструментов, исчезает, оставляя PagerTitleStrip видимым в идеале, возможно, он также скрывается, меня это не волнует. Но я хочу, чтобы мой навигационный ящик продолжал работать, а он не работает. Как будто его не существует.
Теперь в этом первом макете на самом деле работают все вышеперечисленные функции, но проблема в том, что полоса находится под панелью инструментов и не видна, если панель инструментов не скрывается при прокрутке. Ящик работает. К сожалению, элементы просмотра Recycler частично скрыты под панелью инструментов — они не начинают прокручиваться с правой точки экрана, хотя у меня есть этот набор — appbar_scrolling_view_behavior
Макет m_drawerlayout.xml для моей основной деятельности:
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/coordinatorLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<android.support.v4.view.PagerTitleStrip
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="6dp"
android:paddingBottom="6dp"
android:layout_gravity="top"
android:textSize="15sp"
android:textColor="@color/tealfifty"
android:background="@color/teal">
</android.support.v4.view.PagerTitleStrip>
</android.support.v4.view.ViewPager>
<ListView
android:id="@+id/drawer_list"
android:background="@color/tealDark"
android:cacheColorHint="@android:color/transparent"
android:choiceMode="singleChoice"
android:divider="@drawable/list_divider"
android:dividerHeight="1dp"
android:layout_width="280dp"
android:layout_height="match_parent"
android:layout_gravity="start"/>
</android.support.v4.widget.DrawerLayout>
<android.support.design.widget.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<include layout="@layout/app_bar"/>
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
А это код моего app_bar.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/top_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/teal"
app:theme="@style/ToolbarTheme"
app:popupTheme="@style/Green.Overlay.LightPopup"
app:layout_scrollFlags="scroll|enterAlways" >
<Spinner android:id="@+id/spinner"
android:layout_gravity="right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true"
android:paddingRight="20dp"
/>
</android.support.v7.widget.Toolbar>
Я пытался перемещать элементы вокруг, внутри и снаружи других компонентов, но безуспешно. Например, кажется логичным, чтобы сделать PagerTitleStrip прикрепленным к панели инструментов и поделиться одним поведением, мне пришлось бы вложить PagerTitleStrip в макет AppBar, но PagerTitleStrip должен быть прямым дочерним элементом ViewPager для работы... Любые предложения, ребята, о все это? Я новичок во всех этих функциях дизайна, и я много безуспешно исследовал, здесь есть похожие темы, но совсем не то, что мне нужно. Кажется, в Интернете почти ничего нет о вещах, которые я пытаюсь сделать выше (их несколько), по сравнению с другими основными темами.
Если кому-то интересно, почему я использую ViewPager, когда у меня нет вкладок, это потому, что, как я уже сказал, у FrameLayout нет поведения, позволяющего мне правильно использовать исчезающую панель инструментов, и это то, что я нашел хорошим для использования. Я также видел, что NestedScrollView можно использовать, но я никогда его не использовал... Теперь я хочу, возможно, использовать ViewPagerTitle, который, я думаю, ограничивает меня ViewPager для фрагментов.