簡體   English   中英

如何在 Android Material TextInputLayout 中將 SpannableString 設置為 EditText?

[英]How to set a SpannableString to an EditText in an Android Material TextInputLayout?

我找不到將 Material TextInputLayoutEditText的文本設置為SpannableString並讓樣式實際顯示在屏幕上的方法。 我已經嘗試了TextInputLayoutEditText的每種組合,例如:

  1. AppCompatEditText
  2. EditText
  3. TextInputEditText

以各種方式創建SpannableString ,例如:

  1. HtmlCompat.fromHtml(string, HtmlCompat.FROM_HTML_MODE_COMPACT)
  2. SpannableString(string).setSpan(...)
  3. TextUtils.stringOrSpannedString(string)

以各種方式設置EditText的文本,例如:

  1. edittext.setText(spannedString)
  2. edittext.setText(spannedString, TextView.BufferType.SPANNABLE)
  3. edittext.append(spannedString)

瘋狂的是,當 EditText 不在 Material TextInputLayout中時,它們都可以工作,所以這一定是個問題。 更多信息:當您在TextInputLayout上設置提示或占位符文本時,會尊重SpannableString ,而不是其中的EditText的文本。 我查看了TextInputLayout源代碼,但沒有發現任何錯誤。 感謝任何能提供幫助的人。

當我要放棄的時候,我想通了。 您可以從EditText獲取Editable的 object,然后將Span應用於它。 就是這樣:

mEditText.text.setSpan(...)

當您知道在哪里尋找時,這非常容易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM