codecamp

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

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

注意:

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

扫码体验

qrcode for picker

示例代码

<!-- API-DEMO page/component/picker/picker.axml -->
<view class="page">
  <view class="page-description">选择器</view>
  <view class="page-section">
    <picker onChange="bindPickerChange" value="{{index}}" range="{{array}}">
      <view class="row">
        <view class="row-title">地区选择器</view>
        <view class="row-extra">当前选择:{{array[index]}}</view>
        <image class="row-arrow" src="/image/arrowright.png" mode="aspectFill" />
      </view>
    </picker>
  </view>


  <view class="page-section">
    <picker onChange="bindObjPickerChange" value="{{arrIndex}}" range="{{objectArray}}" range-key="name">
      <view class="row">
        <view class="row-title">ObjectArray</view>
        <view class="row-extra">当前选择:{{objectArray[arrIndex].name}}</view>
        <image class="row-arrow" src="/image/arrowright.png" mode="aspectFill" />
      </view>
    </picker>
  </view>
</view>
// API-DEMO page/component/picker/picker.js
Page({
  data: {
    array: ['中国', '美国', '巴西', '日本'],
    objectArray: [
      {
        id: 0,
        name: '美国',
      },
      {
        id: 1,
        name: '中国',
      },
      {
        id: 2,
        name: '巴西',
      },
      {
        id: 3,
        name: '日本',
      },
    ],
    arrIndex: 0,
    index: 0
  },
  bindPickerChange(e) {
    console.log('picker发送选择改变,携带值为', e.detail.value);
    this.setData({
      index: e.detail.value,
    });
  },
  bindObjPickerChange(e) {
    console.log('picker发送选择改变,携带值为', e.detail.value);
    this.setData({
      arrIndex: e.detail.value,
    });
  },
});
/* API-DEMO page/component/picker/picker.acss */
.date-radio {
  padding: 26rpx;
}


.date-radio label + label {
  margin-left: 20rpx;
}




.row {
  display: flex;
  align-items: center;
  padding: 0 30rpx;
}


.row-title {
  flex: 1;
  padding-top: 28rpx;
  padding-bottom: 28rpx;
  font-size: 34rpx;
  color: #000;
}


.row-extra {
  flex-basis: initial;
  font-size: 32rpx;
  color: #888;
}


.row-arrow {
  width: 32rpx;
  height: 32rpx;
  margin-left: 16rpx;
}

属性

属性 类型 默认值 描述
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 是否禁用。
支付宝小程序表单组件 滚动选择器·Picker View
支付宝小程序导航组件 页面链接·Navigator
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

支付宝小程序开发文档

支付宝小程序 快速示例

支付宝小程序 小程序快速示例

支付宝小程序 框架

支付宝小程序 组件

支付宝小程序组件 基础组件

支付宝小程序组件 无障碍访问

支付宝小程序 扩展组件

支付宝小程序扩展组件 UI组件

支付宝小程序 API

支付宝小程序 开发工具

支付宝小程序 云服务

支付宝小程序 Serverless

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }