1. 程式人生 > >監聽WebView的Scroll滑動效果——下滑隱藏actionBar,下滑顯示actionBar

監聽WebView的Scroll滑動效果——下滑隱藏actionBar,下滑顯示actionBar

一:自定義WebView,添加回調的監聽器

package app.coolwhether.com.zhihudailynews.support;

import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.webkit.WebView;

/**
 * Created by kirito on 2017.02.12.
 */

public class ScrollWebView extends
WebView {
private static final String TAG = "ScrollWebView"; public OnScrollListener listener; public ScrollWebView(Context context) { this(context,null); } public ScrollWebView(Context context, AttributeSet attrs) { this(context, attrs,0); } public ScrollWebView
(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onScrollChanged(int l, int t, int oldl, int oldt) { super.onScrollChanged(l, t, oldl, oldt); if (listener != null){ if (t - oldt <= 2
){ listener.onScrollDown(); } if(oldt - t >= 2) { listener.onScrollUp(); } } } public void setListener(OnScrollListener listener){ this.listener = listener; } public interface OnScrollListener{ void onScrollUp();//上滑 void onScrollDown();//下滑 } }

二:佈局檔案使用自定義的WebView

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <app.coolwhether.com.zhihudailynews.support.ScrollWebView
        android:id="@+id/webview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
</LinearLayout>

三:引用該ScrollWebView

mWebView.setListener(new ScrollWebView.OnScrollListener() {
            @Override
            public void onScrollUp() {
                getSupportActionBar().show();
            }

            @Override
            public void onScrollDown() {
                getSupportActionBar().hide();
            }


        });

效果圖