天天看點

Android 高仿 iOS 的省、市、區三級關聯效果庫(含資料,可直接用到項目中) Android-PickerView-Library 預覽 使用 更新日志 聯系我 感謝

Android-PickerView-Library

這是一個高仿 IOS PickerView 控件的庫:https://github.com/Airsaid/Android-PickerView-Library。在https://github.com/saiwu-bigkoo/Android-PickerView 代碼基礎上進行封裝、優化。由于原庫作者不再維護,是以新開了該庫。後期如有時間,将會對整體代碼重構,核心采用自定義 LayouManager 實作。

原庫已經有人接手更新,并且代碼已經整體重構,非常棒。推薦大家使用,位址:https://github.com/saiwu-bigkoo/Android-PickerView

預覽

Android 高仿 iOS 的省、市、區三級關聯效果庫(含資料,可直接用到項目中) Android-PickerView-Library 預覽 使用 更新日志 聯系我 感謝

使用

  • 首先需要在 build.gradle 檔案中添加依賴:
dependencies {
   compile 'com.airsaid.library:pickerview:1.0.3'
}
           

添加好依賴後,重新同步工程。可根據需求使用如下選擇器:

  • 城市選擇:
CityPickerView mCityPickerView = new CityPickerView(this);
        // 設定點選外部是否消失
//        mCityPickerView.setCancelable(true);
        // 設定滾輪字型大小
//        mCityPickerView.setTextSize(18f);
        // 設定标題
//        mCityPickerView.setTitle("我是标題");
        // 設定取消文字
//        mCityPickerView.setCancelText("我是取消文字");
        // 設定取消文字顔色
//        mCityPickerView.setCancelTextColor(Color.GRAY);
        // 設定取消文字大小
//        mCityPickerView.setCancelTextSize(14f);
        // 設定确定文字
//        mCityPickerView.setSubmitText("我是确定文字");
        // 設定确定文字顔色
//        mCityPickerView.setSubmitTextColor(Color.BLACK);
        // 設定确定文字大小
//        mCityPickerView.setSubmitTextSize(14f);
        // 設定頭部背景
//        mCityPickerView.setHeadBackgroundColor(Color.RED);
        mCityPickerView.setOnCitySelectListener(new OnSimpleCitySelectListener(){
                    @Override
                    public void onCitySelect(String prov, String city, String area) {
                        // 省、市、區 分開擷取
                        Log.e(TAG, "省: " + prov + " 市: " + city + " 區: " + area);
                    }

                    @Override
                    public void onCitySelect(String str) {
                        // 一起擷取
                        Toast.makeText(MainActivity.this, "選擇了:" + str, Toast.LENGTH_SHORT).show();
                    }
        });
        mCityPickerView.show();
           
  • 時間選擇:
//     TimePickerView 同樣有上面設定樣式的方法
        TimePickerView mTimePickerView = new TimePickerView(this, TimePickerView.Type.YEAR_MONTH_DAY);
        // 設定是否循環
//        mTimePickerView.setCyclic(true);
        // 設定滾輪文字大小
//        mTimePickerView.setTextSize(TimePickerView.TextSize.SMALL);
        // 設定時間可選範圍(結合 setTime 方法使用,必須在)
//        Calendar calendar = Calendar.getInstance();
//        mTimePickerView.setRange(calendar.get(Calendar.YEAR) - 100, calendar.get(Calendar.YEAR));
        // 設定選中時間
//        mTimePickerView.setTime(new Date());
        mTimePickerView.setOnTimeSelectListener(new TimePickerView.OnTimeSelectListener() {
            @Override
            public void onTimeSelect(Date date) {
                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);
                Toast.makeText(MainActivity.this, format.format(date), Toast.LENGTH_SHORT).show();
            }
        });
        mTimePickerView.show();
           
  • 選項選擇:
OptionsPickerView<String> mOptionsPickerView = new OptionsPickerView<>(this);
        final ArrayList<String> list = new ArrayList<>();
        list.add("男");
        list.add("女");
        // 設定資料
        mOptionsPickerView.setPicker(list);
        // 設定選項機關
//        mOptionsPickerView.setLabels("性");
        mOptionsPickerView.setOnOptionsSelectListener(new OptionsPickerView.OnOptionsSelectListener() {
            @Override
            public void onOptionsSelect(int option1, int option2, int option3) {
                String sex = list.get(option1);
                Toast.makeText(MainActivity.this, sex, Toast.LENGTH_SHORT).show();
            }
        });
        mOptionsPickerView.show();
           

更新日志

  • 1.0.2:修複部分城市文字亂碼bug,修複設定字型過小後分割線無法對齊bug。
  • 1.0.1:修複記憶體洩露問題,修複設定setTime()方法後字型設定無效bug。

聯系我

  • 博 客:http://blog.csdn.net/airsaid
  • QQ群:5707887

感謝

  • https://github.com/saiwu-bigkoo/Android-PickerView