Основано на this Ответ Я попытался сделать решение для моего варианта использования. Вместо использования инструмента «Свертывание» я использую обычный, но с TabLayout
. Однако для TabLayout
мне нужно использовать ViewPager
, и я понятия не имею, где его разместить, чтобы избежать проблем с FrameLayout
. ViewPager был в моей принимающей фрагмент и когда его расположение заменили FrameLayout, содержание опускалась ниже панели инструментов и TabLayout по какой-то причине ...Избегайте просмотра ViewPager под панелью инструментов
Я попытался положить его ниже этой линии
<include layout="@layout/content_main" />
в the app_bar_main.xml
но испортил мой интерфейс.
Реальный вопрос: если мне нужны FrameLayout для моих фрагментов, и мне нужен ViewPager для моего TabLayout, как мне реализовать решение?
Вы можете видеть, что я немного переместил вид, чтобы панель инструментов скрывалась. Таким образом, это видно ViewPager занимает место даже ниже панели инструментов (если она видна)
Текущей попытка - appbar_content (Панель инструментов просто панель инструментов в отдельном макете):
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<android.support.design.widget.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<include layout="@layout/toolbar" />
<android.support.design.widget.TabLayout
android:visibility="visible"
android:id="@+id/tabLayout"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/teal"
app:tabGravity="fill"
app:tabIndicatorColor="@color/purple800"
app:tabIndicatorHeight="4dp"
app:itemIconTint="@color/tabicons"
app:tabMode="fixed"
app:tabSelectedTextColor="@color/tealfifty"
app:tabTextAppearance="@style/TabCapsFalse"
app:tabTextColor="@color/iron" />
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_main" />
</android.support.design.widget.CoordinatorLayout>
content_main (удаленный NestedScrollView, поскольку он все испортил, поместите весь фрагмент в виде небольшого кадра (возможно, размером 50x50) в середине экрана)
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:id="@+id/content_main_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android" />
Моего DrawerLayout:
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<include
layout="@layout/appbar_content"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.design.widget.NavigationView
android:fitsSystemWindows="true"
android:id="@+id/nvView"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@color/tealfifty"
app:itemBackground="@drawable/drawer_item"
app:itemTextColor="@color/drawer_item"
app:itemIconTint="@color/drawer_item"
app:headerLayout="@layout/drawer_header"
app:menu="@menu/navigation_view_items" />
</android.support.v4.widget.DrawerLayout>
У меня была такая же проблема с ViewPager. Добавление атрибута layout_behaviour в ViewPager, решило проблему. –
Рад, что вы исправили ее :) – iBobb