SCWebView.java 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package com.kongzue.dialogxdemo.custom;
  2. import android.content.Context;
  3. import android.util.AttributeSet;
  4. import android.util.Log;
  5. import android.view.MotionEvent;
  6. import android.webkit.WebView;
  7. import androidx.annotation.NonNull;
  8. import androidx.annotation.Nullable;
  9. import com.kongzue.dialogx.interfaces.ScrollController;
  10. /**
  11. * @author: Kongzue
  12. * @github: https://github.com/kongzue/
  13. * @homepage: http://kongzue.com/
  14. * @mail: myzcxhh@live.cn
  15. * @createTime: 2022/3/4 13:02
  16. */
  17. public class SCWebView extends WebView implements ScrollController {
  18. public SCWebView(@NonNull Context context) {
  19. super(context);
  20. }
  21. public SCWebView(@NonNull Context context, @Nullable AttributeSet attrs) {
  22. super(context, attrs);
  23. }
  24. public SCWebView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
  25. super(context, attrs, defStyleAttr);
  26. }
  27. public SCWebView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
  28. super(context, attrs, defStyleAttr, defStyleRes);
  29. }
  30. @Override
  31. @Deprecated
  32. public boolean isLockScroll() {
  33. return lockScroll;
  34. }
  35. boolean lockScroll;
  36. @Override
  37. public void lockScroll(boolean lockScroll) {
  38. this.lockScroll = lockScroll;
  39. }
  40. @Override
  41. public boolean onTouchEvent(MotionEvent event) {
  42. if (lockScroll) return false;
  43. return super.onTouchEvent(event);
  44. }
  45. @Override
  46. public int getScrollDistance() {
  47. return getScrollY();
  48. }
  49. @Override
  50. public boolean isCanScroll() {
  51. return true;
  52. }
  53. }