Android:Webview如何将长文本显示缩减为多行?

时间:2012-04-20 14:15:04

标签: android webview

我在网页浏览中显示长文字时遇到问题。 我的webview宽度设置为400dp。 我想要我的长篇文章:ex。 “looooooooooooooooooooooooooooooooonnnggg !!!” 以多行显示,以便用户不必向左/向右滚动,也不必截断文本。

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

enter image description here

这个长文本如何以多行显示?

我的预期结果:

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 个答案:

答案 0 :(得分:3)

您的问题并非特定于WebView。这就是所有浏览器在没有空格的情况下呈现文本的方式。如果你想要包装文本,你需要输入空格,或者写一些javascript来处理它并以这种方式包装它,或者,只需将它包装起来,然后再将它包装到WebView中。

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:0)

添加 \ n 之后,您想要破坏该行。

编辑:for html&lt; / BR&GT;将会工作

答案 3 :(得分:0)

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