android – 滚动在WebView上反向工作

前端之家收集整理的这篇文章主要介绍了android – 滚动在WebView上反向工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我在我的应用程序中使用了WebView,它看到滚动不正常,当我尝试向下滚动页面时没有下降而反之亦然,但当我尝试触摸屏幕并反向下车时“触摸向上滚动“它正在工作!!,在此图像gif1,gif2中进一步澄清

  1. public class VisitSiteFragment extends android.app.Fragment {
  2. private View view;
  3. private ProgressBar webViewProgressBar;
  4. private WebView webView;
  5. String url;
  6. public VisitSiteFragment() {
  7. // required empty public constructor
  8. }
  9. @Override
  10. public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
  11. // Inflate the layout for this fragment
  12. view = inflater.inflate(R.layout.fragment_visit_site,container,false);
  13. if (getArguments() != null) {
  14. url = this.getArguments().getString("url");
  15. Log.e("URL",url);
  16. }
  17. webViewProgressBar = (ProgressBar) view.findViewById(R.id.webViewProgressBar);
  18. webView = (WebView) view.findViewById(R.id.webView);
  19. webView.setVisibility(View.VISIBLE);
  20. WebSettings webSettings = webView.getSettings();
  21. webSettings.setJavaScriptEnabled(true);
  22. webSettings.setSupportZoom(true);
  23. webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
  24. webSettings.setUseWideViewPort(true);
  25. webView.setWebChromeClient(new WebChromeClient() {
  26. @Override
  27. public void onProgressChanged(WebView view,int newProgress) {
  28. webViewProgressBar.setProgress(newProgress);
  29. super.onProgressChanged(view,newProgress);
  30. }
  31. });
  32. webView.setWebViewClient(new WebViewClient() {
  33. @Override
  34. public void onPageStarted(WebView view,String url,Bitmap favicon) {
  35. super.onPageStarted(view,url,favicon);
  36. webViewProgressBar.setVisibility(View.VISIBLE);
  37. }
  38. @Override
  39. public void onPageFinished(WebView view,String url) {
  40. super.onPageFinished(view,url);
  41. webViewProgressBar.setVisibility(View.GONE);
  42. webView.setVisibility(View.VISIBLE);
  43. }
  44. });
  45. webView.loadUrl(url);
  46. return view;
  47. }
  48. }

XML

我看到有人问这个问题here,但问题的答案没有帮助

最佳答案
经过WebView设置的多次尝试后,我通过禁用滚动嵌入WebView的问题解决了这个问题,如本answer所述,并使用ScrollView代替它

编辑后的代码

  1. webView = (WebView) view.findViewById(R.id.webView);
  2. WebSettings webSettings = webView.getSettings();
  3. webSettings.setJavaScriptEnabled(true);
  4. webSettings.setSupportZoom(true);
  5. webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
  6. webSettings.setUseWideViewPort(true);
  7. webView.setOnTouchListener(new View.OnTouchListener() {
  8. @Override
  9. public boolean onTouch(View v,MotionEvent event) {
  10. return (event.getAction() == MotionEvent.ACTION_MOVE);
  11. }
  12. });
  13. webView.setScrollContainer(false);
  14. webView.setWebChromeClient(new WebChromeClient() {
  15. @Override
  16. public void onProgressChanged(WebView view,url);
  17. webViewProgressBar.setVisibility(View.GONE);
  18. webView.setVisibility(View.VISIBLE);
  19. }
  20. });

猜你在找的Android相关文章