gpt4 book ai didi

Android WebView 内容显示问题

转载 作者:行者123 更新时间:2023-11-30 02:10:24 27 4
gpt4 key购买 nike

我已将文本加载到 WebView 中

String html = "<p>1</p>\n" +
"<p>2</p>\n" +
"<p>3</p>\n" +
"<p>4</p>\n" +
"<p>5</p>\n" +
"<p>6</p>\n" +
"<p>7</p>\n" +
"<p>8</p>\n" +
"<p>9</p>\n" +
"<p>10</p>\n" +
"<p>11</p>\n" +
"<p>12</p>\n" +
"<p>13</p>\n" +
"<p>14</p>\n" +
"<p>15</p>\n" +
"<p>16</p>\n" +
"<p>17</p>\n"+
"<p>18</p>\n";
questionTextView.loadDataWithBaseURL("file:///android_asset/", html, "text/html", "UTF-8", null);

当我有 17 个段落时,一切都显示正常,但是当我添加 18 个或更多段落时,所有文本都消失了,我只看到滚动线。

这是 WebView 设置

if (Build.VERSION.SDK_INT >= 11) {
questionTextView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
final WebSettings webSettings = questionTextView.getSettings();
//float fontSize = getResources().getDimension(R.dimen.practice_text_size);
//webSettings.setDefaultFontSize((int) fontSize);
webSettings.setDefaultTextEncodingName("utf-8");
webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
webSettings.setBlockNetworkImage(true);
webSettings.setGeolocationEnabled(false);
webSettings.setNeedInitialFocus(false);

Web View xml

<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">

<ImageView
android:id="@+id/question_flag"
android:layout_width="24dip"
android:layout_height="24dip"
android:layout_gravity="top|left"
android:layout_marginLeft="4dp"
android:layout_marginTop="4dp"
android:scaleType="centerInside" />


<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">

<LinearLayout
android:id="@+id/question_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">

<de.phase6.vtrainer.custom.FlowLayout
android:id="@+id/question_images"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:orientation="horizontal"
android:visibility="gone" />

<WebView
android:id="@+id/question_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingLeft="8dp"
android:paddingRight="8dp" />


<LinearLayout
android:id="@+id/question_sounds_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:gravity="center"
android:orientation="horizontal"
android:visibility="gone" />


</LinearLayout>
</ScrollView>

<ImageButton
android:id="@+id/btn_undo"
style="@style/BorderlessButton"
android:layout_width="48dip"
android:layout_height="48dip"
android:layout_gravity="bottom|start"
android:longClickable="true"
android:src="@drawable/back"
android:visibility="invisible" />

<ImageButton
android:id="@+id/btn_send_back"
style="@style/BorderlessButton"
android:layout_width="48dip"
android:layout_height="48dip"
android:layout_gravity="bottom|end"
android:longClickable="true"
android:src="@drawable/send_back" />

</FrameLayout>

<View style="@style/DividerHorizontal" />

<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom">

<LinearLayout
android:id="@+id/input_answer_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/light_grey_ddd"
android:padding="@dimen/practice_input_padding"
android:orientation="vertical"
android:visibility="visible">

<TextView
android:id="@+id/user_answer_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/your_answer"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textAllCaps="true"
android:textColor="@color/grey" />

<EditText
android:id="@+id/input_answer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/transparent"
android:focusableInTouchMode="true"
android:focusable="true"
android:ems="10"
android:imeOptions="actionDone"
android:singleLine="true"
android:inputType="textNoSuggestions" />
</LinearLayout>

<Button
android:id="@+id/btn_see_answer"
style="@style/BorderlessButton"
android:layout_width="match_parent"
android:layout_height="48dip"
android:textAllCaps="true"
android:text="@string/show_answer" />

</FrameLayout>

最佳答案

经过调查,我发现当您将 WebView 放入 ScrollView 并设置

时,这个问题会重现
if (Build.VERSION.SDK_INT >= 11) {
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}

屏幕上的信息量大约为两屏或更多,然后 WebView 变为空白。

要解决此问题,请不要设置 LayerType 或设置 webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);

关于Android WebView 内容显示问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30192530/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com