我在WebView中有一个html文件,它只包含文本。它不滚动API 30设备(模拟器)。但它滚动API 30以下的其他设备。
XML文件:
<WebView
android:id="@+id/web_view"
android:layout_width="match_parent"
android:layout_height="wrap_content" i tried match_parent and 0dp
app:layout_constrainedHeight="true"
android:layout_marginStart="@dimen/_20sdp"
android:layout_marginTop="@dimen/_20sdp"
android:layout_marginEnd="@dimen/_20sdp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/divider" />
我也试过:
android:scrollbars="vertical" (xml)
webView.isVerticalScrollBarEnabled = true (programatic)
我试着使用FrameLayout或ScrollView,但仍然不起作用。顺便说一下,我加载了一个资产文件:
webView.loadUrl("file:///android_asset/Agreement.html")
这是HTML文件的示例结构:
<html>
<head>
<title>Agreement</title>
</head>
<body>
<p>some texts... with <i> tag sometimes.... there are 2 paragraph </p>
</html>
1条答案
按热度按时间xtfmy6hx1#
此问题与
WebView
滚动API 30
的默认行为更改有关。API 30
WebView
由ScrollView
父处理。如果它不存在,则由WebView
处理。您必须禁用
WebView
滚动:将
WebView
包裹在ScrollView
内,并设置高度match_parent
:如果使用的是
ConstraintLayout
,请将以下属性添加到.xml
布局中的WebView
:将
android:scrollbars
和android:scrollbarStyle
属性添加到.xml
布局中的WebView
:检查
WebView
内部的内容是否超过屏幕高度。使用不同的
layout
(如LinearLayout
或RelativeLayout
)可以解决问题:验证应用于
WebView
的自定义样式是否可能发生冲突:1.在
res/values
目录中打开styles.xml
。1.检查自定义样式。(它们可能有父
Widget.WebView
)1.检查自定义样式是否冲突,或者它们是否设置了
height
或width
。1.删除或修改以查看它是否解决滚动。