-
Notifications
You must be signed in to change notification settings - Fork 3.4k
常见问题
在提交issue之前,我们应该先查询是否已经有相关的issue,避免重复提问。另外,提交issue时,我们需要写明issue的原因。对于模糊不清的提问,可能将不会得到回复。工作忙碌,个人时间实在有限,有时没办法及时回复,还望见谅。
请参考:提问的智慧。
在4.x版本可能会考虑出一个扁平化的WheelView来支持。目前暂时需要可使用1.x版本,或者自行在最新版本将WheelView 关于圆弧相关的计算给去掉以实现扁平效果。
联动情况下,动态请求网络会因为延时性造成滑动不流畅,及Loading等待、卡顿等问题,因此需要一次性加载数据进去。 若需要在切换选项时才请求数据,建议设置为三级不联动,然后稍加修改源码,在切换选项时,回调监听来实现该功能。
目前只做了三级联动,即年月日是联动的。时分秒是三个不联动的选项。若需要支持时分秒联动,则变成了六级联动。数据量会很庞大。若自己业务有需求需要限制时分秒,则可自行下载源码参考年月日的逻辑扩展该库功能。
目前有两种解决办法:
- 构建时设置isDialog(true)。
- 通过setDecorView方法 指定它的容器布局即可。
具体可参考Issue 里面 #279 这个提问: #279
解决办法:
.setDecorView((ViewGroup) getWindow().getDecorView().findViewById(android.R.id.content))
.build
setDecorView()传递的参数可以是自己页面中的ViewGroup来指定PickerView的父控件(即被添加到哪个控件去)。
可通过setItemVisibleCount 方法设置(建议设置为奇数如3/5/7,若设置偶数,最大可显示Item数会+1 自适应为奇数。)
实体类需要 实现 IPickerViewData 接口 ,方法里面return 填我们需要显示的内容,类型要求为String类型。
- isCenterLabel 设置成false ,这样显示的单位是添加在内容后面。
- 用自定义布局,先把默认的单位给隐藏,然后在xml布局中自己添加显示单位的TextView ,调整位置并让它居中。
- 修改WheelView源码,调整dradText的x轴起始位置。
注意:当我们进行设置时间的启始位置时,需要特别注意月份的设定。
原因:Calendar组件内部的月份,是从0开始的,即0-11代表1-12月份
错误使用案例: startDate.set(2013,1,1); endDate.set(2020,12,1);
正确使用案例: startDate.set(2013,0,1); endDate.set(2020,11,1);
原因:布局是添加到 android.R.id.content 这个rootView 的,它不包含标题栏。因此若需要将标题栏也给遮盖起来的话,在build()方法之前调用 setDecorView方法,自定义设置一下pickerView容器即可,代码如下:
.setDecorView((ViewGroup) getWindow().getDecorView())
.build();