WebView внутри NestedScrollView не прокручивается, когда в ответе веб-контента есть элемент iframe с высотой, установленной на 100%

#android #iframe #webview

#Android #iframe #webview

Вопрос:

У меня есть Fragment место , где я показываю WebView . Activity Содержащий Фрагмент имеет CoordinatorLayout в качестве своего родителя. Я хочу свернуть Toolbar файл, когда пользователь прокручивает WebView его.

Макет действия

     <android.support.design.widget.CoordinatorLayout android:id="@ id/cordinator_layout"
                                                 xmlns:android="http://schemas.android.com/apk/res/android"
                                                 xmlns:app="http://schemas.android.com/apk/res-auto"
                                                 android:layout_width="match_parent"
                                                 android:layout_height="match_parent">

    <android.support.design.widget.AppBarLayout
        android:id="@ id/appbar_layout"
        android:layout_width="match_parent"
        android:layout_height="@dimen/topic_tile_height"
        app:layout_behavior="android.support.design.widget.NewshuntAppBarLayoutBehavior">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@ id/collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="@dimen/topic_tile_collapsing_toolbar"
            app:layout_scrollFlags="scroll|enterAlways">

            <include layout="@layout/actionbar_news"/>

        </android.support.design.widget.CollapsingToolbarLayout>

        <android.support.design.widget.TabLayout
            android:id="@ id/category_tabs"
            android:layout_width="match_parent"
            android:layout_height="@dimen/topic_slidingtablayout_height"
            android:layout_gravity="bottom"
            android:contentDescription="@string/newspaper_category_tabs"
            android:paddingTop="@dimen/topics_sliding_tab_margin_top"/>
    </android.support.design.widget.AppBarLayout>

    <android.support.v4.view.ViewPager
        android:id="@ id/news_list_pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clipToPadding="false"
        android:contentDescription="@string/categories_pager"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

</android.support.design.widget.CoordinatorLayout>
 

Рекомендуемое решение — использовать WebView внутри NestedScrollView.
XML-макет фрагмента выглядит следующим образом.

 <android.support.v4.widget.SwipeRefreshLayout
    android:id="@ id/category_webitem_container"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true">
        <WebView
            android:id="@ id/web_item_content"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
        </WebView>
    </android.support.v4.widget.NestedScrollView>

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

Это прекрасно работает, когда ответ, который должен быть загружен в WebView, представляет собой простой HTML. Но если ответ содержит элемент iframe, то WebView заполняет только порт просмотра. Я не могу прокрутить файл WebView .

Вот пример ответа, в котором WebView не прокручивается. Здесь высота приближается к 100%. Если я получу фиксированную высоту, например 1000dp или что-то в этом роде, я смогу прокручивать WebView. Но я не получу фиксированную высоту с сервера.

 "content":"<html>rn<head>rnt<title></title>rn</head>rn<body>rn<div><iframe height="100%" src="https://sportscafe.in/s3/sc-s3-static-mum.sportscafe.in/kwc/en_fixtures.html" width="100%"></iframe></div>rn</body>rn</html>rn"
 

Хотя в WebView есть больше контента, я не могу прокрутить его дальше текста от 29 марта

введите описание изображения здесь

Комментарии:

1. Вы нашли какое-либо решение для этого?

2. @NishanthSreedhara: к сожалению, мы не смогли найти никакого решения для этого.

3. Я нашел один, который работает очень хорошо для меня. github.com/takahirom/webview-in-coordinatorlayout/blob/master /…

4. Это работает для меня, добавьте эту строку в NestedScrollView в XML-файле. android: FillViewport=»true» затем установите webview height wrap_content . <WebView android: id=»@ id/webview» android:layout_width=»match_parent» android:layout_height=»wrap_content»/>

5. это решение мне не помогло @Opriday