All Projects → iTimeTraveler → WheelPicker

iTimeTraveler / WheelPicker

Licence: Apache-2.0 license
A wheel picker for Android, support DateWheelPicker, TimeWheelPicker(滚轮控件,日期、时间选择器,省市区三级联动)

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to WheelPicker

Androidpicker
安卓选择器类库,包括日期及时间选择器(可用于出生日期、营业时间等)、单项选择器(可用于性别、民族、职业、学历、星座等)、二三级联动选择器(可用于车牌号、基金定投日期等)、城市地址选择器(分省级、地市级及区县级)、数字选择器(可用于年龄、身高、体重、温度等)、日历选日期择器(可用于酒店及机票预定日期)、颜色选择器、文件及目录选择器、图片选择器等……WheelPicker/DatePicker/TimePicker/OptionPicker/NumberPicker/LinkagePicker/AddressPicker/CarPlatePicker/CalendarPicker/ColorPicker/FilePicker/ImagePicker etc.
Stars: ✭ 5,320 (+16021.21%)
Mutual labels:  timepicker, datepicker, wheelview, wheelpicker
popoPicker
popoPicker是一个移动端3D滚轮日期时间和单项的选择器,支持无限循环滚动,不依赖第三方库
Stars: ✭ 26 (-21.21%)
Mutual labels:  timepicker, datepicker, wheelpicker
Android Pickerview
This is a picker view for android , support linkage effect, timepicker and optionspicker.(时间选择器、省市区三级联动)
Stars: ✭ 13,003 (+39303.03%)
Mutual labels:  timepicker, datepicker, wheelview
qing
🍧一个UI组件库。包括 { 日期选择器组件 } { 时间选择器组件 } { 分页组件 } { 树组件 } { 级联选择器组件 } { 表单组件 } 等,ES6语法编写,原生模块化
Stars: ✭ 71 (+115.15%)
Mutual labels:  timepicker, datepicker
React Datepicker
📅 React DatePicker Library (Flexible, Reusable)
Stars: ✭ 165 (+400%)
Mutual labels:  timepicker, datepicker
React Native Paper Dates
Smooth and fast cross platform Material Design date and time picker for React Native Paper
Stars: ✭ 173 (+424.24%)
Mutual labels:  timepicker, datepicker
Material Ui Pickers
Date & Time pickers, built with ❤️ for @material-ui/core
Stars: ✭ 2,291 (+6842.42%)
Mutual labels:  timepicker, datepicker
Flatpickr
lightweight, powerful javascript datetimepicker with no dependencies
Stars: ✭ 14,575 (+44066.67%)
Mutual labels:  timepicker, datepicker
nativescript-datetimepicker
Plugin with date and time picking fields
Stars: ✭ 26 (-21.21%)
Mutual labels:  timepicker, datepicker
NodaTimePicker
A Date/Time picker component library for Blazor using NodaTime
Stars: ✭ 49 (+48.48%)
Mutual labels:  timepicker, datepicker
ng-persian-datepicker
Persian datepicker for angular 12+
Stars: ✭ 62 (+87.88%)
Mutual labels:  timepicker, datepicker
vue3-date-time-picker
Datepicker component for Vue 3
Stars: ✭ 157 (+375.76%)
Mutual labels:  timepicker, datepicker
Ng2 Datetime
Datetime picker plugins wrapper for Angular2+
Stars: ✭ 165 (+400%)
Mutual labels:  timepicker, datepicker
React Numpad
A numpad for number, date and time, built with and for React.
Stars: ✭ 117 (+254.55%)
Mutual labels:  timepicker, datepicker
Hibiscus.js
Native Angular directives for Bootstrap4
Stars: ✭ 115 (+248.48%)
Mutual labels:  timepicker, datepicker
Materialdaterangepicker
A material Date Range Picker based on wdullaers MaterialDateTimePicker
Stars: ✭ 1,315 (+3884.85%)
Mutual labels:  timepicker, datepicker
silverware-calendar
SilverWare Calendar Module
Stars: ✭ 15 (-54.55%)
Mutual labels:  timepicker, datepicker
Angular Bootstrap Datetimepicker
Native Angular date/time picker component styled by Twitter Bootstrap
Stars: ✭ 1,289 (+3806.06%)
Mutual labels:  timepicker, datepicker
Datetimepicker
📅 Date and Time Picker
Stars: ✭ 90 (+172.73%)
Mutual labels:  timepicker, datepicker
react-calendar-datetime-picker
A simple and fast date and time picker component for React
Stars: ✭ 58 (+75.76%)
Mutual labels:  timepicker, datepicker

Android-WheelPicker

license

A wheel view that uses a spinning-wheel or slot-machine metaphor to show one or more sets of values.(滚轮控件,时间选择器)

Demo APK

Download Demo Apk

Usage

Step 1. Add the dependency to build.gradle.

dependencies {
  compile 'io.itimetraveler:pickerselector:0.0.0.2'
}

or download this repository.

Step 2. Add WheelPicker into your layouts or view hierarchy.

<io.itimetraveler.widget.picker.WheelPicker
    android:id="@+id/wheel_picker"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

Step 3. fill it with a dataset.

// demo dateset
List<String> mList = Arrays.asList("A", "B", "C");

mWheelPicker = (WheelPicker) findViewById(R.id.wheel_picker);
mWheelPicker.setOptions(new PicketOptions.Builder()
        .linkage(false)                                   // 是否联动
        .dividedEqually(false)                            // 每列宽度是否均等分
        .backgroundColor(Color.parseColor("#000000"))     // 背景颜色
        .dividerColor(Color.parseColor("#999999"))        // 选中项分割线颜色
        .build());

PickerAdapter adapter = new PickerAdapter() {
    @Override
    public int numberOfComponentsInWheelPicker(WheelPicker wheelPicker) {
        // 需要多少列
        return 2;
    }

    @Override
    public int numberOfRowsInComponent(int component) {
        // 某一列有多少行数据
        switch (component) {
            case 0:
                return 10;
            case 1:
                return mList.size();
        }
        return 0;
    }

    @Override
    public View onCreateView(ViewGroup parent, int row, int component) {
        // 某行某列显示的View,String 数据可使用默认 StringItemView 类
        String str = "";
        switch (component) {
            case 0:
                str = "" + row;
                break;
            case 1:
                str = mList.get(row);
                break;
        }
        return new StringItemView(String.valueOf(str)).onCreateView(parent);
    }

    @Override
    public void onBindView(ViewGroup parent, View convertView, int row, int component) {
        // 回收的View,仅需根据某行某列刷新数据。String 数据可使用默认 StringItemView 类
        String str = "";
        switch (component) {
            case 0:
                str = "" + row;
                break;
            case 1:
                str = mList.get(row);
                break;
        }
        new StringItemView(String.valueOf(str)).onBindView(parent, convertView, row);
    }
};
mWheelPicker.setAdapter(adapter);
mWheelPicker.setOnItemSelectedListener(new WheelPicker.OnItemSelectedListener() {
    @Override
    public void onItemSelected(WheelPicker parentView, int[] position) {
        // 选中后的回调
        s1 = "" + position[0];
        s2 = mList.get(position[1]);
        updateTextView();
    }
});
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].