美文网首页
让Toolbar跟随RecyclerView/WebView滚动

让Toolbar跟随RecyclerView/WebView滚动

作者: Richile | 来源:发表于2019-04-22 20:58 被阅读0次

    这里我使用了一个开源库来设置statusbar的颜色,在app的build.gradle中添加

    api 'com.jaeger.statusbarutil:library:1.5.1'
    

    在onCreate中初始化statusbar的颜色为透明:

    private void initStatusBar() {
            // 设置status bar的颜色为透明,这个接口需要设置第3个参数(透明度)
            StatusBarUtil.setColor(this, Color.TRANSPARENT, 0);
            // 设置布局可以到status bar的区域
            getWindow().getDecorView()
                    .setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                            | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
        }
    

    接下来就是布局了,在布局中添加一个AppBarLayout,并且它的子View是Toolbar

    <android.support.design.widget.AppBarLayout
            android:id="@+id/appbar"
            android:layout_height="wrap_content"
            android:layout_width="match_parent">
    
            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="?attr/colorPrimary"
                android:minHeight="?attr/actionBarSize"
                android:fitsSystemWindows="true"
                app:layout_scrollFlags="scroll|enterAlways">
    
                <TextView
                    android:id="@+id/tv_toolbar_title"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/app_name"
                    android:layout_gravity="center"
                    android:maxLines="1"
                    android:ellipsize="end"
                    android:layout_marginRight="8dp"
                    android:textColor="@android:color/white"
                    android:textSize="18sp" />
    
            </android.support.v7.widget.Toolbar>
        </android.support.design.widget.AppBarLayout>
        
        <android.support.v4.widget.NestedScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior">
    
            <WebView
                android:id="@+id/webview"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                />
    
        </android.support.v4.widget.NestedScrollView>
    

    这个Toolbar在AppBarLayout中就可以移动了,添加
    app:layout_scrollFlags="scroll|enterAlways"意思是跟随下面的NestedScrollView的子View滚动,scroll表示上滑时跟着移动出去,enterAlways表示一旦下滑,就马上进入到屏幕,要实现跟着滚动,就要通过设置NestedScrollView的子View的属性app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior"让它们有关联。

    相关文章

      网友评论

          本文标题:让Toolbar跟随RecyclerView/WebView滚动

          本文链接:https://www.haomeiwen.com/subject/pkzugqtx.html