【问题标题】:Hide toolbar on scroll inside BottomSheet view在 BottomSheet 视图内滚动时隐藏工具栏
【发布时间】:2016-11-22 11:37:45
【问题描述】:

我正在尝试将Toolbar 隐藏在带有BottomSheetBehaviorViewGroup 内滚动。
滚动视图在 ViewPager 内部。
布局如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    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:orientation="vertical">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/appbar">

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

        <com.astuetz.PagerSlidingTabStrip
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="#00000000"
            app:pstsIndicatorHeight="3dp"
            app:pstsShouldExpand="@bool/shouldExpandTab"
            app:pstsPaddingMiddle="@bool/padMiddle"
            app:pstsTabTextStyle="coded"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:gravity="center"
            app:layout_scrollFlags="scroll|enterAlways"/>

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

    <com.nao20010128nao.Wisecraft.misc.view.OverScrollViewPager
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:id="@+id/pager"/>

</LinearLayout>

在这个 xml 中,com.nao20010128nao.Wisecraft.misc.view.OverScrollViewPagerViewPager 类之一,因此它作为 ViewPager 工作。
当我在底部表中滚动视图时,此代码不会隐藏 Toolbar
有什么解决办法吗?

【问题讨论】:

    标签: android android-layout android-viewpager android-toolbar bottom-sheet


    【解决方案1】:

    当状态改变时尝试改变可见性

    final BottomSheetBehavior behavior = BottomSheetBehavior.from(findViewById(R.id.bottomSheet));
            behavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
                @Override
                public void onStateChanged(@NonNull View bottomSheet, int newState) {
                    if (newState > BottomSheetBehavior.STATE_DRAGGING)
                        bottomSheet.post(new Runnable() {
                            @Override public void run() {
                                behavior.setState(BottomSheetBehavior.STATE_EXPANDED);
                            }
                        });
                }
    
                @Override
                public void onSlide(@NonNull View bottomSheet, float slideOffset) {
                }
            });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-13
      • 1970-01-01
      相关资源
      最近更新 更多