#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