Android滚动选择器(支持省市区联动选择、日期选择、时间选择)。
注:${latestVersion}请替换为当前最新版本号,见releases。
gradle:
implementation 'com.github.duanhong169:picker-view:${latestVersion}'
maven:
<dependency> <groupId>com.github.duanhong169</groupId> <artifactId>picker-view</artifactId> <version>${latestVersion}</version> <type>pom</type> </dependency>
添加到layout文件中:
<top.defaults.view.PickerView android:id="@+id/pickerView" android:layout_width="match_parent" android:layout_height="wrap_content"/>
使用列表作为数据源
List<Item> items = new ArrayList<>(); for (int i = 0; i < 42; i++) { items.add(new Item("Item " + i)); } pickerView.setItems(Item.sampleItems(), item -> textView.setText(item.getText()));
实现Adapter作为数据源
配置数据源:
PickerView.Adapter adapter = new PickerView.Adapter() { @Override public int getItemCount() { return 42; } @Override public String getText(int index) { return "Item " + index; } }; pickerView.setAdapter(adapter);
监听选择事件:
pickerView.setOnSelectedItemChangedListener((pickerView, previousPosition, selectedItemPosition) -> textView.setText(pickerView.getAdapter().getText(selectedItemPosition)));
添加到layout文件中:
<top.defaults.view.DivisionPickerView android:id="@+id/divisionPicker" android:layout_width="match_parent" android:layout_height="wrap_content" app:preferredMaxOffsetItemCount="4" android:background="#e7e7e7"/>
构建省市区数据源:
设置数据源并监听选择事件
final List<DivisionModel> divisions = Divisions.get(this); divisionPicker.setDivisions(divisions); divisionPicker.setOnSelectedDateChangedListener(division -> textView.setText(Division.Helper.getCanonicalName(division)));
添加到layout文件中:
<top.defaults.view.DateTimePickerView android:id="@+id/datePickerView" android:layout_width="match_parent" android:layout_height="wrap_content" app:preferredMaxOffsetItemCount="3" app:textSize="18sp" app:type="dateTime" app:minutesInterval="fifteen" app:curved="true" android:background="#e7e7e7"/>
设置初始日期:
dateTimePickerView.setStartDate(Calendar.getInstance()); // 注意:月份是从0开始计数的 dateTimePickerView.setSelectedDate(new GregorianCalendar(2017, 6, 27, 21, 30));
监听选择事件:
dateTimePickerView.setOnSelectedDateChangedListener(new DateTimePickerView.OnSelectedDateChangedListener() { @Override public void onSelectedDateChanged(Calendar date) { int year = date.get(Calendar.YEAR); int month = date.get(Calendar.MONTH); int dayOfMonth = date.get(Calendar.DAY_OF_MONTH); int hour = date.get(Calendar.HOUR_OF_DAY); int minute = date.get(Calendar.MINUTE); String dateString = String.format(Locale.getDefault(), "%d年%02d月%02d日%02d时%02d分", year, month + 1, dayOfMonth, hour, minute); textView.setText(dateString); Log.d(TAG, "new date: " + dateString); } });
更详细的使用方法请参见示例。
GitHub有一个开源控件PickerView,可以实现三级联动的效果。虽然该控件使用非常简单,但是填充数据异常繁琐。GitHub上的Demo在填充数据的时候是一条一条地填充的,代码过于冗余。下面提供一种简便的方式来实现。 (1)在app目录下新建一个assets文件夹,将province_data.xml文件复制到该文件夹下,该XML文件里保存了全国的省市县的地址数据。 (2)使用SAX解析xm
package com.greyka.imgr.classes; import android.annotation.SuppressLint; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.
滚动选择组件。纯 JS 模拟滚动选择,跨平台。 Usage 全部引入 import { Scrollpicker } from 'beeshell'; 按需引入 import Scrollpicker from 'beeshell/dist/components/Scrollpicker'; Examples Scrollpicker 与 BottomModal 组合应用 相关属性说明 Cod
本文向大家介绍Android PickerView滚动选择器的使用方法,包括了Android PickerView滚动选择器的使用方法的使用技巧和注意事项,需要的朋友参考一下 手机里设置闹钟需要选择时间,那个选择时间的控件就是滚动选择器,前几天用手机刷了MIUI,发现自带的那个时间选择器效果挺好看的,于是就自己仿写了一个,权当练手。先来看效果:
另一个位置问题。我再次尊重你们,因为现在我知道有多少情况下,你们必须这样做才能进行第一次,也许第二次尝试。我(和你)以前的方法同样不起作用。目标页面和标签,我需要href。 这些并不能满足我的需要。
在中,
我正在使用TouchAction和Appium中的坐标向下滚动本机应用程序。代码示例: 但有一个警告——应用程序中的一个部分包含一大块文本。这些方法不是向下滚动,而是选择文本中的单词(比如长按复制单词),而不是滚动。我尝试过设置坐标以避免滚动时出现文本,但没有效果。你面对过这个问题吗?任何帮助都将不胜感激。如果可能,请包括代码示例!谢谢
mpvue 对小程序原生组件 slider 的各个属性完全支持,还是有两个坑要说下(其实大部分坑都是由于小程序原生组件的绑定事件在 mpvue 框架中写法不同造成的): slider的属性bindchange和bindchanging 在mpvue框架中的写法为: @change和@changing 类型为事件的属性在完成触发事件后,取值的方式为:event.mp.detail = {value:
Slider 滑动选择器 平台差异说明 App H5 微信小程序 支付宝小程序 百度小程序 头条小程序 QQ小程序 √ √ √ √ √ √ √ 基本使用 需要通过v-model绑定一个值,来初始化滑块的选择值(0到100之间),这个值是双向绑定的,您可以通过这个值,实时地得知内部的滑动结果。 <template> <view class="wrap"> <u-slider v-model="
我有一个选择元素,里面有多个选项: 对于这里看到的每个选项元素,我都有另一个select元素。基本上,我在一个选择元素中列出了一系列音乐流派,在它下面,是与每一个“主流派”相关的子流派。 我想做的是使子体裁只有在相对体裁被选中时才可见。例如,如果用户选择“Pop”,我想向他们显示包含Pop子类型的相关选择字段。 我的HTML标记实际上是由WordPress插件生成的,不幸的是,我无法编辑它。也就是