【问题标题】:How to add "..." ellipsis to lengthy text in a WebView?如何将“...”省略号添加到 WebView 中的冗长文本?
【发布时间】:2013-01-08 13:40:46
【问题描述】:

我正在使用 WebView 正确对齐 RTL 文本。

简单地说,我想在文本较长时添加“...”省略号。

使用 android:ellipsize="end" 归档在 TextView 中

有没有办法实现“...”省略号或控制 WebView 中的行数?

代码如下:

String header = "<html><head><meta http-equiv=\"Content-Type\" +" + "content=\"text/html; charset=UTF-8\" /></head>";
String dt = "<body dir=\"rtl\">" +  o.get(p).getTitle() +"</body></html>";
webView.loadData(URLEncoder.encode(header + dt,"utf-8").replaceAll("\\+"," "), "text/html", "UTF-8");

【问题讨论】:

  • 确定,有什么问题?这些步骤似乎微不足道(找出文本是否太长,添加省略号),那么哪个步骤不可行?您当前的代码看起来如何? html/css 和这个有什么关系?
  • @Nanne 感谢您的回复,我如何才能知道文本是否冗长且无法放入 WebView?那是我的问题:)
  • textview 在做什么?你在某个地方添加了它只是为了包含省略号?你能显示一些代码吗?
  • @Nanne 我没有使用TextView,我想在WebView上实现“...”椭圆,您可以查看上面的代码。
  • 您是否可以控制进入 web 视图的文本内容?

标签: java android html css android-layout


【解决方案1】:

您可以解析 html 并找出页面上最后一个可见的 html 元素。然后,您可以通过将#ellipsis id 附加到该元素来使用以下内容。

CSS 文本换行: http://jsfiddle.net/6HcWM/

问题将是找到最后一个可见的 html 元素,因为屏幕大小可能会有所不同,缩放级别也可能会有所不同。我猜您需要将 JavaScript 附加到 html 才能发现这一点...

也许这会起作用: How to tell if a DOM element is visible in the current viewport?

【讨论】:

  • 感谢您的回答。然而,空白:nowrap; CSS 属性使文本在单行中换行。如何将文本包装在 90% 的 WebView 高度?
  • 我不太清楚你所说的“在 90% 的 webview 高度”是什么意思
  • 我的意思是我不希望文本被包裹在一行中。例如,我希望省略号显示在第三行的末尾。
【解决方案2】:

您有两个简单的选择:

  1. 在您的 HTML 元素上使用 CSS 和 text-overflow 属性:方向here

  2. 1234563

【讨论】:

  • 感谢您的回答。然而,空白:nowrap; CSS 属性使文本在单行中换行。如何将文本包装在 90% 的 WebView 高度?
猜你喜欢
  • 1970-01-01
  • 2015-01-22
  • 2015-01-08
  • 2021-12-02
  • 2013-02-09
  • 1970-01-01
  • 2022-01-06
  • 2013-09-15
  • 2013-07-17
相关资源
最近更新 更多