在Listview中滚动webview在android

时间:2018-01-03 19:51:53

标签: android listview webview adapter

我有一个应用程序,它在listView中显示多个webView。我的问题是,当我尝试上下滚动webView时,webView不会响应我的手指,除非我只使用3个手指。当它响应时,它几乎不会上下移动。我发现问题是listview禁止滚动浏览webView。我尝试过使用:

listView.setEnabled(false);

但它对我不起作用。有谁能告诉我如何解决这个问题? 这就是我在listView中添加webView布局的方式。

ArrayList<DefaultCards> cardsList = new ArrayList<>();
    cardsList.add(new DefaultCards("Hello Google","https://www.google.com", new WebViewClient()));
    CardsAdapter cardsAdapter = new CardsAdapter(this, cardsList);
    ListView listView = findViewById(R.id.cards_listview);
    listView.setAdapter(cardsAdapter);
    listView.setEnabled(false);

这是将显示listView的布局:

<ListView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/cards_listview"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

最后,这是将插入到listView中的布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:background="@color/colorBackground"
android:padding="5dp">

<android.support.v7.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    card_view:cardCornerRadius="4dp">

    <WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:layout_marginTop="50dp"/>


</android.support.v7.widget.CardView>

2 个答案:

答案 0 :(得分:0)

带上一粒盐,但您可能想尝试使用回收器视图作为列表持有者,并为您的webview容器使用嵌套滚动视图。

此外,如果webview的内容足够大以滚动,则可能需要添加isScrollContainer =&#34; true&#34;属于您的webview的xml。

同样,这只是一个疯狂的猜测。希望它有所帮助!

答案 1 :(得分:0)

listview正在拦截滚动。您可以通过创建实现NestedScrollingChild,NestedScrollingParent的NestedScrollingWebView来防止这种情况。

如果您搜索嵌套滚动Webview,则有许多代码示例。 使用它而不是常规的Webview。