我尝试为每个单词显示一个带有“芯片”样式的 TextView。换句话说,我希望这个Splitwise TokenAutoComplete不可编辑且不可自动完成。
所以我有一个适合我风格的drawable:
肌肉令牌背景.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="@color/primary_dark" />
<corners
android:topLeftRadius="5dp"
android:bottomLeftRadius="5dp"
android:topRightRadius="5dp"
android:bottomRightRadius="5dp" />
</shape>
我有我的风格,它使用 drawable :
主题.xml
<resources>
<style>
.....
</style>
<style name="textview_chips" parent="@android:style/TextAppearance.Medium">
<item name="android:background">@drawable/muscle_token_background</item>
</style>
</resources>
我找到的解决方案是使用SpannableStringBuilder和 SyleSpan :
SpannableStringBuilder sb = new SpannableStringBuilder(myString);
int currentCharCount = sb.length();
sb.append(myString.trim());
int nextCharCount = sb.length();
sb.setSpan(new StyleSpan(R.style.textview_chips), currentCharCount, nextCharCount, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
myTextView.setText(sb);
但是 TextView 只会变成斜体。
我尝试在 XML 文件中使用其他 TextView 并且背景可绘制对象显示良好
<TextView
...
style="@style/textview_chips"
... />
那么我该如何为我的 TextView 的每个单词应用这种样式呢?