微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – 滚动在WebView上反向工作

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

public class VisitSiteFragment extends android.app.Fragment {

private View view;
private ProgressBar webViewProgressBar;
private WebView webView;
String url;


public VisitSiteFragment() {
    // required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    view = inflater.inflate(R.layout.fragment_visit_site,container,false);
    if (getArguments() != null) {
        url = this.getArguments().getString("url");
        Log.e("URL",url);
    }
    webViewProgressBar = (ProgressBar) view.findViewById(R.id.webViewProgressBar);
    webView = (WebView) view.findViewById(R.id.webView);

    webView.setVisibility(View.VISIBLE);
    WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webSettings.setSupportZoom(true);
    webSettings.setJavaScriptCanopenWindowsAutomatically(true);
    webSettings.setUseWideViewPort(true);


    webView.setWebChromeClient(new WebChromeClient() {
        @Override
        public void onProgressChanged(WebView view,int newProgress) {
            webViewProgressBar.setProgress(newProgress);
            super.onProgressChanged(view,newProgress);
        }
    });
    webView.setWebViewClient(new WebViewClient() {


        @Override
        public void onPageStarted(WebView view,String url,Bitmap favicon) {
            super.onPageStarted(view,url,favicon);
            webViewProgressBar.setVisibility(View.VISIBLE);
        }

        @Override
        public void onPageFinished(WebView view,String url) {
            super.onPageFinished(view,url);
            webViewProgressBar.setVisibility(View.GONE);
            webView.setVisibility(View.VISIBLE);
        }

    });

    webView.loadUrl(url);

    return view;

}

}

XML

    ravity="top"
        android:layout_marginTop="-3dp"
        android:progress="20"
        />

    

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

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

编辑后的代码

webView = (WebView) view.findViewById(R.id.webView);

    WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webSettings.setSupportZoom(true);
    webSettings.setJavaScriptCanopenWindowsAutomatically(true);
    webSettings.setUseWideViewPort(true);

    webView.setonTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v,MotionEvent event) {
            return (event.getAction() == MotionEvent.ACTION_MOVE);
        }
    });

    webView.setScrollContainer(false);


    webView.setWebChromeClient(new WebChromeClient() {
        @Override
        public void onProgressChanged(WebView view,url);
            webViewProgressBar.setVisibility(View.GONE);
            webView.setVisibility(View.VISIBLE);
        }

    });

原文地址:https://www.jb51.cc/android/430244.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐