我有一个自定义日期选择器,可以扩展日期选择器。
我在加载组件时初始化了月份样式:
private void updateCustomStyle() {
ViewGroup childPicker = (ViewGroup)
findViewById(Resources.getSystem().getIdentifier("month" /*rest is:
day, year*/, "id", "android"));
EditText textview = (EditText)
childPicker.getChildAt(0);
textview.setTextSize(35);
textview.setTextColor(Color.GREEN);
textview.invalidate();
}
在此之后加载了datepicker,月份字体大小更大,颜色为绿色。在我将月份滚动到另一个月之后问题发生了,我有一个我在初始化时定义的日期更改监听器:
this.init(agora.getYear(), agora.getMonth(), agora.getDate(),
this.getOnDataChangedListener());
在数据更改监听器上,我有这个电话:
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
updateCustomStyle();
}
但是在我滚动到另一个月后,它仍然会回到原来的风格。对此有何建议?
此方法适用于Android 3.1和4.0。 android 4.1.2及更高版本会出现问题。有什么想法吗?
答案 0 :(得分:0)
经过大量研究后,我发现你无法像以前的版本那样在Android 4.1.X上做那种选择风格。你可以做的是创建一个扩展NumberPicker的类并添加这段代码:
if (child instanceof EditText) {
((EditText) child).setTextSize(35);
}
但是你仍然无法为所选数字使用不同的样式,所以我做的是使用simonVT numberpicker(https://github.com/SimonVT/android-numberpicker),在一些自定义解决了问题之后。