0

我无法在我的 web 视图上显示长文本。我的 webview 宽度设置为 400dp。我想要我的长文本:ex。“呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜!!!” 以多行显示,这样用户就不必向左/向右滚动,也不必截断文本。

但是,我只得到以下结果:

在此处输入图像描述

这么长的文字怎么能多行显示呢?

我的预期结果:

Hello World
looooooooooooooooooooooooooooooooooooo
ooooooooooooooooooooonnnngg!!!

xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >
    <WebView 
        android:id="@+id/webview"
        android:layout_width="400dp"
        android:layout_height="fill_parent"
    />
</LinearLayout>

爪哇

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    WebView webview = (WebView) findViewById(R.id.webview);
    webview.getSettings().setJavaScriptEnabled(true);
    webview.getSettings().setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS);
    String html = "<html><head></head><body>Hello World<br>looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooonnnggg!!!</body></html>";
    webview.loadDataWithBaseURL(
            "http://nada", html, "text/html", "utf8", "");
  }
4

4 回答 4

3

您的问题并非特定于 WebView。这就是所有浏览器在其中呈现没有空格的文本的方式。如果您希望文本换行,您将需要放入空格,或者编写一些 javascript 来处理它并以这种方式包装它,或者,在将其提供给 WebView 之前将其包装起来。

于 2012-04-20T14:20:41.733 回答
3

您不需要为此编写 Java,您可以将文本包装成 a<div>并在标题中使用标签

<meta name="viewport" content=" width=device-width, initial-scale=1.0">

这将使您的页面适合移动屏幕并自动执行文本换行。

于 2018-06-18T06:12:31.260 回答
1

您可以style="overflow-wrap:break-word"为您的标签添加一个。如果其中没有其他可接受的断点,它会中断太长的线。

于 2018-12-05T12:31:05.623 回答
0

在您想要换行的地方添加\n 。

编辑:对于 html </br> 将起作用

于 2012-04-20T14:22:23.053 回答