NumberPicker

时间:2016-12-23 13:32:44

标签: android numberpicker

我正在使用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格式的字符串吗?

1 个答案:

答案 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);
        }
    }