? ? 最近項目中不少地方用到了DatePicker,其他地方運行都沒問題,但是當運行在Samsung手機的Android5.0系統上,一彈出時間選擇界面便直接崩潰,導致異常:
Error ScreenShot
? ? 在stack overflow 中搜索,并結合自身遇到的情況發現,這是由于在三星Android 5.0的實現中,若APP開發使用了Theme.AppCompat系列主題,變化產生此崩潰。于是解決思路便有了,方案有二,
一、修改Android 5.0中DatePicker的style,使其與Theme.AppCompat不產生聯系;
二、修改系統主題。
明顯,方法二更簡單,但是APP的整體風格就變了,于是我選擇了不影響此的方式,修改DatePicker的style,具體做法如下:
1 , styles.xml 中定義好DatePicker的style,
DatePicker Style
2,在需要彈出DatePicker的地方,進行一個版本的判斷,若是5.0及以上,特殊處理:
if(Integer.valueOf(android.os.Build.VERSION.SDK) >= Build.VERSION_CODES.LOLLIPOP){ ? ? ? ??showDateDialog(ctx,view);
return;
}
彈出的dialog進行如下處理:
Special DatePickerDialog
3,剩余的部分處理和其他版本一致即可。
至此,此異常已解決。
ps:
? ? 待續:此處還有值得研究之處,待之后完善。