2012-04-27 2 views
1

Я использую WebView для правильного выравнивания текста RTL.Как добавить «...» многоточие к длинному тексту в WebView?

Просто, я хочу добавить «...» эллипсис, когда текст длинный.

Что архивируется в TextView с использованием android:ellipsize="end"

Есть ли способ, чтобы достичь «...» многоточие или контролировать количество строк в 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"); 
+0

уверен, что это проблема? Шаги кажутся тривиальными (выясните, слишком ли длинный текст, добавьте многоточие), так какой шаг не работает? как выглядит ваш текущий код? С чем это связано с html/css? – Nanne

+0

@Nanne Спасибо за ваш ответ, Как я могу узнать, длинный текст и не может поместиться в WebView? Это моя проблема :) –

+0

А что такое textview? вы добавили, что где-то просто для размещения многоточия? вы могли бы показать какой-то код? – Nanne

ответ

0

У вас есть два простых варианта:

  1. Используйте CSS и свойство текста переполнения на вашем HTML-элемента: направления here.

  2. Если вам нужно немного лучше контролировать, где появляется многоточие, и есть средства - включите jQuery и плагин с эллипсисом jQuery в свой HTML через теги скриптов: направления here.

+0

Спасибо за ваш ответ. Однако белое пространство: nowrap; Атрибут CSS делает перенос текста в одну строку. Как я могу обернуть текст в 90% высоты WebView? –

0

Вы можете разобрать html и узнать, что является последним видимым элементом html на странице. Затем вы можете использовать следующее, добавив идентификатор #ellipsis к этому элементу.

CSS Text Обертывание: http://jsfiddle.net/6HcWM/

Проблема будет найти последний видимый элемент HTML, как размер экрана может меняться, и уровень масштабирования предположительно может варьироваться. Я предполагаю, что вам нужно добавить JavaScript в HTML, чтобы открыть это ...

Может быть, это будет работать: How to tell if a DOM element is visible in the current viewport?

+0

Спасибо за ваш ответ. Однако белое пространство: nowrap; Атрибут CSS делает перенос текста в одну строку. Как я могу обернуть текст в 90% высоты WebView? –

+0

Я не совсем уверен, что вы подразумеваете под «в 90% высоты веб-просмотра» – Jack

+0

Я имею в виду, что я не хочу, чтобы текст был обернут в одну строку. Я бы предпочел, чтобы эллипсис отображался в конце третьей строки, например. –

Смежные вопросы