尝试添加一个刷新方法到WebView和有问题

2022-01-29 10:41:23 标签 javaandroidwebview

我试图添加一个简单的滑动刷新到webview布局。我搜索了所有的地方,尝试了不同的方法,从我在GitHub和Android开发者页面上找到的东西,但似乎没有什么工作。当我加载没有OnRefresh方法的代码在代码中加载的web页面就很好。但只要我启用该方法,页面就会关闭应用程序。任何建议将是伟大的,因为我是新的android(1年经验),并试图学习。谢谢

下面是我正在使用的代码示例。希望我不会每次在这里问问题的时候都发布太多的信息,我被告知我发布太多了!!


private AboutViewModel AboutViewModel;
SwipeRefreshLayout swipe;
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View root;
    AboutViewModel = new ViewModelProvider(this).get(AboutViewModel.class);
        root = inflater.inflate(R.layout.fragment_about, container, false);
        WebView webView = root.findViewById(R.id.web_view_about);
        webView.loadUrl("https://example.com");
        webView.setWebViewClient(new WebViewController());
    swipe = (SwipeRefreshLayout) container.findViewById(R.id.swipe);
    swipe.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
        @Override
        public void onRefresh() {
            webView.reload();
        }
    });
    return root;
}

这是布局xml

<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/swipe"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <WebView
        android:id="@+id/web_view_about"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

###用root替换容器

swipe = root.findViewById(R.id.swipe);
        swipe.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                webView.reload();
                swipe.setRefreshing(false); // Call this at the end of loading
            }
        });
阅读全文

▼ 版权说明

相关文章也很精彩
推荐内容
更多标签
相关热门
全站排行
随便看看

错说 cuoshuo.com —— 程序员的报错记录

部分内容根据CC版权协议转载;网站内容仅供参考,生产环境使用务必查阅官方文档

辽ICP备19011660号-5

×

扫码关注公众号:职场神器
发送: 1
获取永久解锁本站全部文章的验证码