Skip to content

常见问题

xiaosongzeem edited this page Oct 29, 2019 · 18 revisions

如何更优雅地提Issue:

在提交issue之前,我们应该先查询是否已经有相关的issue,避免重复提问。另外,提交issue时,我们需要写明issue的原因。对于模糊不清的提问,可能将不会得到回复。工作忙碌,个人时间实在有限,有时没办法及时回复,还望见谅。

请参考:提问的智慧。

Q1. 如何去掉3D效果只显示普通扁平视图?

在4.x版本可能会考虑出一个扁平化的WheelView来支持。目前暂时需要可使用1.x版本,或者自行在最新版本将WheelView 关于圆弧相关的计算给去掉以实现扁平效果。

Q2.OptionsPicker如何支持省市区三级联动异步加载?

联动情况下,动态请求网络会因为延时性造成滑动不流畅,及Loading等待、卡顿等问题,因此需要一次性加载数据进去。 若需要在切换选项时才请求数据,建议设置为三级不联动,然后稍加修改源码,在切换选项时,回调监听来实现该功能。

Q3. TimePicker 时分秒的限制问题?

目前只做了三级联动,即年月日是联动的。时分秒是三个不联动的选项。若需要支持时分秒联动,则变成了六级联动。数据量会很庞大。若自己业务有需求需要限制时分秒,则可自行下载源码参考年月日的逻辑扩展该库功能。

Q4. PickerView如何显示在Dialog上层避免被挡住?

目前有两种解决办法:

  1. 构建时设置isDialog(true)。
  2. 通过setDecorView方法 指定它的容器布局即可。

具体可参考Issue 里面 #279 这个提问: #279

Q5. 如何解决虚拟按键挡住PickerView?

解决办法:

 .setDecorView((ViewGroup) getWindow().getDecorView().findViewById(android.R.id.content))
 .build

setDecorView()传递的参数可以是自己页面中的ViewGroup来指定PickerView的父控件(即被添加到哪个控件去)。

Q6. 如何修改WheelView显示的条目数?

可通过setItemVisibleCount 方法设置(建议设置为奇数如3/5/7,若设置偶数,最大可显示Item数会+1 自适应为奇数。)

Q7. 为什么用OptionsPicker 显示出的是类对象的路径?

实体类需要 实现 IPickerViewData 接口 ,方法里面return 填我们需要显示的内容,类型要求为String类型。

Q8. 单位居中显示问题

  1. isCenterLabel 设置成false ,这样显示的单位是添加在内容后面。
  2. 用自定义布局,先把默认的单位给隐藏,然后在xml布局中自己添加显示单位的TextView ,调整位置并让它居中。
  3. 修改WheelView源码,调整dradText的x轴起始位置。

Q9. 时间选择器,月份显示有误差?

注意:当我们进行设置时间的启始位置时,需要特别注意月份的设定。
原因: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);

Q10. ToolBar、ActionBar 没有被遮盖的问题

原因:布局是添加到 android.R.id.content 这个rootView 的,它不包含标题栏。因此若需要将标题栏也给遮盖起来的话,在build()方法之前调用 setDecorView方法,自定义设置一下pickerView容器即可,代码如下:

.setDecorView((ViewGroup) getWindow().getDecorView())
.build();

更多问题可直接搜索issue区,或者提问~ 欢迎提出反馈意见 或者好的建议, 感谢各位支持~