gpt4 book ai didi

android - spannablestring 不适用于以编程方式创建的按钮

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:53:21 25 4
gpt4 key购买 nike

我知道 SpannableString 可以在一个 TextView 中设置不同的文本大小,但如果以编程方式添加 TextView ,则它不起作用。

String s = "Best Ever";
SpannableString ss1 = new SpannableString(s);
ss1.setSpan(new RelativeSizeSpan(2f), 0, 4, 0); // set size
ss1.setSpan(new ForegroundColorSpan(Color.RED), 0, 4, 0); // set color
TextView tv = (TextView) findViewById(R.id.textview);
tv.setText(ss1);

最佳答案

如您所见,它适用于 API17 的 Button 和 TextView,但仅适用于 API21 的 TextView

有趣!我注意到 API 21 上的按钮全是大写的。所以去掉所有的大写。

默认情况下,Material 按钮的样式显示为全部大写的文本。但是,用于大写的 AllCapsTransformationMethod ( bug details ) 中存在一个错误,导致它丢弃 Spannable 数据。

您可以通过禁用 allCaps 模式来覆盖默认按钮样式,这对于 Material 样式的小部件默认情况下是正确的。

来自代码,

txt.setAllCaps(false);

来自 XML,

<View
...
android:textAllCaps="false" />

关于android - spannablestring 不适用于以编程方式创建的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29843191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com