Скрыть TabLayout на прокрутке содержимого вместо ToolBar
Я хочу скрыть TabLayout при прокрутке моего содержимого. В настоящее время я искал сеть, но я нашел образцы, которые скрывают панель инструментов, но я хочу скрыть TabLayout. Пожалуйста, помогите мне. Я пробовал код ниже.
<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/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/id_appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true">
<android.support.v7.widget.Toolbar
android:id="@+id/id_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways"/>
<android.support.design.widget.TabLayout
android:id="@+id/id_tabs"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
style="@style/MyCustomTabLayout"/>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/id_viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>
Вот пример приложений:
https://play.google.com/store/apps/details?id=com.contextlogic.wish
https://play.google.com/store/apps/details?id=co.vine.android
Ответы
Ответ 1
Попробуйте этот подход. Основная идея состоит в том, чтобы переместить панель инструментов за пределы CoordinatorLayout и обернуть эту структуру представлений другим макетом контейнера.
<RelativeLayout 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.support.design.widget.AppBarLayout
android:id="@+id/id_toolbar_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true">
<android.support.v7.widget.Toolbar
android:id="@+id/id_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:layout_scrollFlags="scroll|exitUntilCollapsed" />
</android.support.design.widget.AppBarLayout>
<android.support.design.widget.CoordinatorLayout
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/id_toolbar_container">
<android.support.design.widget.AppBarLayout
android:id="@+id/id_appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_scrollFlags="scroll|enterAlways">
<android.support.design.widget.TabLayout
android:id="@+id/id_tabs"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/id_viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>
</RelativeLayout>
Ответ 2
Здравствуйте, вы хотите исчезнуть на панели инструментов, а вкладки все еще просматриваются, вы должны написать следующий код:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_scrollFlags="scroll|enterAlways"
></android.support.v7.widget.Toolbar>
И если вы хотите скрыть TabLayout, используйте scrollFlags в блоке TabLayout
app:layout_scrollFlags="scroll|enterAlways"
Ответ 3
Вам нужно переместить Toolbar
как вид сверху в макете и заменить его на View
, который будет помещать предыдущее пространство Toolbar
и будет прокручиваться как TabLayout
, внутри вашего AppBarLayout
.
Вот как вам нужно установить макет.
<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/preview_top_parent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout...>
<android.support.v4.view.ViewPager...>
<android.support.v7.widget.Toolbar/> <-!--- Toolbar is direct child of CooridnatorLayout and z-order above all views --!->
</android.support.design.widget.CoordinatorLayout>
Вот видео