当滑动到不同的viewpager页面时,如何使用layout_scrollFlags再次显示先前隐藏的工具栏

Che*_*eng 9 android

目前,我有以下页面 ViewPager

在此输入图像描述

滚动INFO选项卡中的页面时,将隐藏工具栏.这种行为是通过实施CoordinatorLayout,AppBarLayout并app:layout_scrollFlags

<?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"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


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

        <android.support.v7.widget.Toolbar
            app:layout_scrollFlags="scroll|enterAlways|snap"

            android:id="@+id/toolbar"
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:minHeight="?attr/actionBarSize"
            android:background="@android:color/transparent"
            app:elevation="0dp"
            android:elevation="0dp"
            app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

        <android.support.design.widget.TabLayout
            android:id="@+id/tab_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:tabIndicatorColor="?attr/detailedStockTabIndicatorColor" />
    </android.support.design.widget.AppBarLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/view_pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

所以,这就是滚动后的样子.

滚动后,隐藏工具栏

在此输入图像描述

由于这是一个ViewPager,如果我滑动到FINANCIAL选项卡,它将如下所示.

随后刷卡

在此输入图像描述

由于,FINANCIAL选项卡中的页面不可滚动,我们希望不要隐藏Toolbar.

我想知道,layout_scrollFlags当刷到不同的ViewPager页面时,如何使工具栏再次显示以前隐藏使用?

Mar*_*ari 5

你可以这样做:

final AppBarLayout appBarLayout = view.findViewById(R.id.app_bar_layout);
    viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {
            if (position == 1)
                appBarLayout.setExpanded(true, true);
        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });
Run Code Online (Sandbox Code Playgroud)

因此,当viewPager处于无法收集的页面时,它会展开并显示工具栏