防止SwipeRefreshLayout在溢出滚动时刷新:在Webview中滚动

时间:2019-08-17 22:01:12

标签: java android css webview swiperefreshlayout

我目前正在为网络社区开发一个Android客户端,该客户端还具有聊天功能。聊天区使用CSS overflow: scroll显示所有消息。当我尝试在聊天区域中滚动时,会触发周围的SwipeRefreshLayout,而不是允许滚动。

我对网站的工作原理没有影响。我也尝试解决以下问题:SwipeRefreshLayout + WebView when scroll position is at top 但是,这似乎不适用于CSS属性。

我当前的布局如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v4.widget.SwipeRefreshLayout
        android:id="@+id/swipeRefresh"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <org.adblockplus.libadblockplus.android.webview.AdblockWebView
            android:id="@+id/webview"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

    </android.support.v4.widget.SwipeRefreshLayout>
</LinearLayout>

以及相应的Java代码:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        WebView webview = findViewById(R.id.webview);
        SwipeRefreshLayout refreshLayout = findViewById(R.id.swipeRefresh);

        refreshLayout.setOnRefreshListener(()-> {
            webview.reload();
            refreshLayout.setRefreshing(false);
        });

        HashMap<String, String> headers = new HashMap<>();
        headers.put("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36");

        webview.loadUrl("https://example.com", headers);
}

我希望仅在无法在Web视图中滚动时才触发SwipeRefreshLayout。

0 个答案:

没有答案