Android TextView出現雙下劃線?

一、問題描述

在華爲機型榮耀V10中Android版本9.0使用普通的方式設置下劃線,卻出現了雙下劃線的現象。

二、TextView設置下劃線方式

正常情況下可以有五種設置下劃線

1.字符串資源中設置下劃線屬性(用<u>標籤,最簡單的方法)

<resources>
    <string name="hello Android"><u>phone:0123456</u></string>
    <string name="app_name">myAndroid</string>
</resources>

2.TextView設置autoLink屬性(會主動調用系統瀏覽器,跳轉鏈接

<TextView xmlns:android="http://schemas.android.com/apk/res/android"  
     android:id="@+id/auto_tv"
     android:layout_width="match_parent"  
     android:layout_height="match_parent"  
     android:autoLink="all"  
     android:text="@string/android_auto"  />

 在代碼中設置:
1、使用TextView的Paint的屬性

tvTest.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG); //下劃線
tvTest.getPaint().setAntiAlias(true);//抗鋸齒

2、使用SpannableString類( 富文本)

SpannableString content = new SpannableString(str);
content.setSpan(new UnderLineSpan, 0, str.length(), 0);

3、使用Html.fromHtml()

TextView textView = (TextView)findViewById(R.id.tv_test); 
textView.setText(Html.fromHtml("<u>"+"0123456"+"</u>"));

三、問題原因

I’m sorry I don't know!

四、問題修復

    // 使用此方式設置下滑線爲了適配華爲手機有雙下劃線
            spannableString = new SpannableString("當所有事件同時發生時:");
            UnderlineSpan underlineSpan = new UnderlineSpan();
            spannableString.setSpan(underlineSpan, 0, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
            binding.eventHintTv.setText(spannableString);

使用以上代碼即可解決雙下劃線的問題 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章