【问题标题】:Set text in TextView using Html.fromHtml使用 Html.fromHtml 在 TextView 中设置文本
【发布时间】:2012-09-24 13:45:56
【问题描述】:

我必须分三个部分显示文本,所以我使用了 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 正确,但在设备中显示为一行。

我的textview的xml声明是:

   <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>

【问题讨论】:

    标签: android android-layout textview


    【解决方案1】:

    您使用&lt;br&gt; 标签的方式不合适。使用以下内容:

    txtvw.setText(Html.fromHtml("<p align=right> <b> "
                + "Hi!" + " <br/> <font size=6>"
                + " How are you "+"</font> <br/>"
                + "I am fine" + "  </b> </p>"));
    

    应该是&lt;br/&gt; 而不是&lt;/br&gt; 我已经测试了这段代码,它按预期显示了 3 行。

    【讨论】:

    【解决方案2】:
    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);
    

    【讨论】:

      【解决方案3】:

      为你的布局设置行标签 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>"));
      

      【讨论】:

        【解决方案4】:

        textView.setText(Html.fromHtml(str, Html.FROM_HTML_MODE_COMPACT));

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-12-07
          • 1970-01-01
          • 2013-04-30
          • 1970-01-01
          • 1970-01-01
          • 2013-04-16
          相关资源
          最近更新 更多