设置Android控件WebView不可滑动

下面两种方式都可以实现,希望对志同道合的搬砖者们有帮助,亲测有效!

方式一:原生控件WebView

xml文件:

<WebView
    android:id="@+id/web_view_prize"
    android:layout_width="match_parent"
    android:layout_height="303dp"
    android:layout_marginTop="39dp" />

Java代码:

WebView webView = (WebView) findViewById(R.id.web_view_prize);
// 使WebView不可滚动
webView.setOnTouchListener((v, event) -> (event.getAction() == MotionEvent.ACTION_MOVE));
webView.loadUrl(GlobalVar.WEB_VIEW_PRIZE_IMG);

方式二:自定义WebView

xml文件:

<com.huiyu.xm.assistant.View.widget.ImageWebView
    android:id="@+id/web_view_prize"
    android:layout_width="match_parent"
    android:layout_height="303dp"
    android:layout_marginTop="39dp" />

自定义WebView:

public class ImageWebView extends WebView {
    public ImageWebView(Context context) {
        super(context);
    }

    public ImageWebView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public ImageWebView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    public boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY,
                                int scrollRangeX, int scrollRangeY, int maxOverScrollX,
                                int maxOverScrollY, boolean isTouchEvent) {
        return false;
    }

    /**
     * 使WebView不可滚动
     */
    @Override
    public void scrollTo(int x, int y) {
        super.scrollTo(0, 0);
    }
}

来自大佬补充:

https://me.csdn.net/u011246046

方式一:是将整个页面的以及控件的滚动事件给禁止了;

方式二:只是禁止了webview的页面滚动事件禁止了,但里面的控件的事件滚动没有禁止。

总结:

遇到问题不可怕,多去网上找找,多想想,总能解决的!

走一段令人留恋的路,做一个不负自己的人。——共勉

猜你喜欢

转载自blog.csdn.net/Agg_bin/article/details/82226304