Установить текст в TextView с помощью Html.fromHtml
Мне нужно показать текст в трех частях, поэтому я использовал Html.fromHtml следующим образом:
txtvw.setText(Html.fromHtml("<p align=right> <b> "
+ "Hi!" + " </br> <font size=6>"
+ " How are you "+"</font> </br>"
+ "I am fine" + " </b> </p>"));
HTML правильный, но в устройстве он отображается в одной строке.
my xml декларация textview:
<RelativeLayout
android:id="@+id/Home"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:background="@drawable/transparentfooter"
android:layout_above="@+id/bottombar" >
<TextView
android:id="@+id/txt"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textColor="@android:color/white"/>
</RelativeLayout>
Ответы
Ответ 1
То, как вы использовали тег <br>
, является неуместным. Используйте следующее:
txtvw.setText(Html.fromHtml("<p align=right> <b> "
+ "Hi!" + " <br/> <font size=6>"
+ " How are you "+"</font> <br/>"
+ "I am fine" + " </b> </p>"));
Он должен быть <br/>
, а не </br>
Я проверил этот код, и он отображает 3 строки, как ожидалось.
Ответ 2
Установите тег линий на макет android: lines = "4"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:lines="4"
android:text="@string/hello_world"
tools:context=".MainActivity" />
</RelativeLayout>
Напишите правильные теги "br" html
TextView text =(TextView)findViewById(R.id.text);
text .setText(Html.fromHtml("<p align=right> <b> "
+ "<br>" +"Hi!" + " </br> "
+ "<br> How are you "+" </br>"
+ "<br>I am fine" + " </br> </b> </p>"));
Ответ 3
Html.fromHtml(String source)
теперь устарел из Api-24.
Из Api-24 этот метод изменился на
Html.fromHtml(String source,int flags)
Таким образом, мы можем использовать, как показано ниже, Api 24
txtvw.setText(Html.fromHtml("<p align=right> <b> "
+ "Hi!" + " <br/> <font size=6>"
+ " How are you "+"</font> <br/>"
+ "I am fine" + " </b> </p>"),Html.FROM_HTML_MODE_LEGACY);