我正在使用NumberPicker
,我想为每个数字添加一个后缀。
我知道我可以这样做:
picker.setFormatter(new NumberPicker.Formatter() {
@Override
public String format(int value) {
return value + " suffix");
}
});
但我希望后缀是下标。所以我尝试了这个:
picker.setFormatter(new NumberPicker.Formatter() {
@Override
public String format(int value) {
return value + " " + Html.fromHtml("<sub>suffix</sub>")
}
});
但它不起作用 - 格式未应用;后缀不是下标。这显然是因为fromHtml
返回Spanned
,然后我将其转换为String
。
那么我可以在选择器上应用Html格式的字符串吗?
答案 0 :(得分:1)
创建自定义NumberPicker
并覆盖addView
方法:
@Override
public void addView(View child) {
super.addView(child);
updateView(child);
}
@Override
public void addView(View child, int index, android.view.ViewGroup.LayoutParams params) {
super.addView(child, index, params);
updateView(child);
}
@Override
public void addView(View child, android.view.ViewGroup.LayoutParams params) {
super.addView(child, params);
updateView(child);
}
private void updateView(View view) {
if(view instanceof TextView){
your_spanned_string = ...;
((TextView) view).setText(your_spanned_string);
}
}