Android-PickerView這個開源項目已經轉交給我負責繼續維護,目前我已經更新優化一部分,填補了一些不足之處,推出了3.x新版本,使用起來更加靈活方便,定制性更強。歡迎提Issue ,Pull Request
更新時間:2017-2-24日
以下是去年在使用2.1.1版本遇到的問題,目前2.x版本我已經分支出去,停止更新。推出了3.x版本。
——————————————————————————————————————————————————————————————————————————————————————
最近項目中使用了Android-PickerView這個開源項目,用來做省市區三級聯動選擇器,感覺項目中有些地方處理得不是蠻恰當,自己做了下改動記錄一下。
原項目GitHub地址:https://github.com/saiwu-bigkoo/Android-PickerView.git
項目的默認效果:
用過這個項目的朋友想必會發現,默認的選擇器字體大小好像偏大了點,那么要改小一點怎么辦? 找來找去,發現OptionsPickerView 類中,只有一個標題可設置,那么標題的字體大小,以及確定,取消按鈕,還有內容的字體大小該怎么設置呢?
想了想,第一個方法是,把該項目源代碼拷貝到自己項目中去應用,根據自己的需求修改其布局文件和源碼邏輯等,問題便解決了。
第二個方法是:通過在自己的項目中覆寫依賴項目的XML文件,來替換控件所引用的屬性值。步驟如下:
(開發工具 Android Studio)
1.找到依賴的項目,打開res-layout布局目錄,找到選擇器的布局文件pickerview_options.xml:
點擊選擇器中所引用的屬性值,會自動跳轉到values-values文件里,發現dimens 屬性分別是這樣的:
20sp
20sp
44dp
21sp
#000000
#057dff
#c2daf5
找到這些屬性之后,將其復制到自己項目的 values-dimens 文件中,然后修改想要實現的值就行了,另外在values目錄下,創建一個 bools.xml 文件,加上這個屬性,屬性值填true:
true
,完成后,編譯運行一次,發現大功告成。
修改后的效果如下:
字體沒那么大了
順便補充一下原項目中沒有考慮到的,已經彈出選擇框的情況下,點擊系統返回鍵沒有 dismiss的小bug:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (pvOptions!=null&&pvOptions.isShowing()) {//對象不為空且已經顯示
pvOptions.dismiss();
return true;
}
}
return super.onKeyDown(keyCode, event);
}