在一条文本上使用ForegroundColorSpan而不是更改文本颜色时,当光标位于文本上方时,它将在其下划线。这是在运行Android 9(Pie)的我(物理)Pixel 3和也运行Android 9(Pie)的(物理)Pixel 1上发生的。
但是,当我在运行Android 7.1.1(牛轧糖)的(虚拟)FWVGA上运行它时,它会按预期启动。
我到处都是,但是我找不到任何相关信息(可能是因为Android 9相对较新?)
MainActivity.kt
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val editText = findViewById<EditText>(R.id.codeView)
var ss: SpannableStringBuilder = SpannableStringBuilder("I'm RED and I'm GREEN now")
//val testing123: Spanned = Html.fromHtml("<u><font color='#2eb6f0'>Blue I Hope</font></u>")
val fcsRed: ForegroundColorSpan = ForegroundColorSpan(Color.RED)
val fcsGreen: ForegroundColorSpan = ForegroundColorSpan(Color.GREEN)
ss.run {
setSpan(fcsRed, 3, 7, 0)
setSpan(fcsGreen, 16, 21, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
}
editText.setText(ss)
}
}
activity_main.xml-> codeView
<EditText
android:id="@+id/codeView"
android:text = ""
android:layout_width="362dp"
android:layout_height="503dp"
android:layout_marginTop="4dp"
android:layout_weight="1"
android:gravity="top|left"
android:inputType="textMultiLine"
android:lines="40"
android:maxLines="20000"
android:minLines="1"
android:scrollbars="vertical|horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.956" />
答案 0 :(得分:0)
设置>辅助功能>实验性>高对比度文字
在将我的Pixel 1恢复出厂设置(并使应用正常运行)之后,我发现它一定是我已启用的设置。浏览完所有设置后,我发现是由高对比度文本引起的字体颜色默认为黑色,并且仅在光标位于其上方时才将颜色显示为下划线。