支付宝小程序表单组件 底部弹起的滚动选择器·Picker

2020-09-10 11:27 更新

选择器包括一个或多个不同值的可滚动列表,每个值可以在视图的中心以较暗的文本形式显示。当用户正在编辑字段或点击菜单时,选择器通常会从屏幕底部弹起(iOS)。

注意:

  • picker 组件在 iOS 系统中从底部弹出,在安卓系统中从中间弹出。
  • picker 组件不支持多列选择,可以使用 picker-view 组件。
  • 通过 my.multiLevelSelect 调用级联选择。
  • 可以通过 my.datePicker 打开日期选择列表。

扫码体验

qrcode for picker

示例代码

  1. <!-- API-DEMO page/component/picker/picker.axml -->
  2. <view class="page">
  3. <view class="page-description">选择器</view>
  4. <view class="page-section">
  5. <picker onChange="bindPickerChange" value="{{index}}" range="{{array}}">
  6. <view class="row">
  7. <view class="row-title">地区选择器</view>
  8. <view class="row-extra">当前选择:{{array[index]}}</view>
  9. <image class="row-arrow" src="/image/arrowright.png" mode="aspectFill" />
  10. </view>
  11. </picker>
  12. </view>
  13. <view class="page-section">
  14. <picker onChange="bindObjPickerChange" value="{{arrIndex}}" range="{{objectArray}}" range-key="name">
  15. <view class="row">
  16. <view class="row-title">ObjectArray</view>
  17. <view class="row-extra">当前选择:{{objectArray[arrIndex].name}}</view>
  18. <image class="row-arrow" src="/image/arrowright.png" mode="aspectFill" />
  19. </view>
  20. </picker>
  21. </view>
  22. </view>
  23. // API-DEMO page/component/picker/picker.js
  24. Page({
  25. data: {
  26. array: ['中国', '美国', '巴西', '日本'],
  27. objectArray: [
  28. {
  29. id: 0,
  30. name: '美国',
  31. },
  32. {
  33. id: 1,
  34. name: '中国',
  35. },
  36. {
  37. id: 2,
  38. name: '巴西',
  39. },
  40. {
  41. id: 3,
  42. name: '日本',
  43. },
  44. ],
  45. arrIndex: 0,
  46. index: 0
  47. },
  48. bindPickerChange(e) {
  49. console.log('picker发送选择改变,携带值为', e.detail.value);
  50. this.setData({
  51. index: e.detail.value,
  52. });
  53. },
  54. bindObjPickerChange(e) {
  55. console.log('picker发送选择改变,携带值为', e.detail.value);
  56. this.setData({
  57. arrIndex: e.detail.value,
  58. });
  59. },
  60. });
  61. /* API-DEMO page/component/picker/picker.acss */
  62. .date-radio {
  63. padding: 26rpx;
  64. }
  65. .date-radio label + label {
  66. margin-left: 20rpx;
  67. }
  68. .row {
  69. display: flex;
  70. align-items: center;
  71. padding: 0 30rpx;
  72. }
  73. .row-title {
  74. flex: 1;
  75. padding-top: 28rpx;
  76. padding-bottom: 28rpx;
  77. font-size: 34rpx;
  78. color: #000;
  79. }
  80. .row-extra {
  81. flex-basis: initial;
  82. font-size: 32rpx;
  83. color: #888;
  84. }
  85. .row-arrow {
  86. width: 32rpx;
  87. height: 32rpx;
  88. margin-left: 16rpx;
  89. }

属性

属性 类型 默认值 描述
title String - 标题。
range String[] / Object[] [] String[] 时表示可选择的字符串列表;Object[] 时需指定 range-key 表示可选择的字段。
range-key String - 当 range 是一个 Object[] 时,通过 range-key 来指定 Object 中 key 的值作为选择器显示内容。
value Number - 表示选择了 range 中的第几个(下标从 0 开始)。
onChange EventHandle - value 改变时触发,event.detail = {value: value}
disabled Boolean false 是否禁用。
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号