合作咨询
我们的专家服务团队将竭诚为您提供专业的合作咨询服务
当一个任务需要多个步骤时,可以使用stepper组件展示当前进展。具体用法请参考stepper API。
在pages/index目录下的hml文件中创建一个stepper组件。
- <!-- xxx.hml -->
- <div class="container">
- <stepper>
- <stepper-item>
- <text>Step 1</text>
- </stepper-item>
- <stepper-item>
- <text>Step 2</text>
- </stepper-item>
- </stepper>
- </div>
- /* xxx.css */
- .container {
- width:100%;
- height:100%;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- background-color: #F1F3F5;
- }
- text{
- width: 100%;
- height: 100%;
- text-align: center;
- }

页面默认显示索引值为index的步骤。
- <!-- xxx.hml -->
- <div class="container">
- <stepper index="2">
- <stepper-item>
- <text>stepper-item1</text>
- </stepper-item>
- <stepper-item>
- <text>stepper-item2</text>
- </stepper-item>
- <stepper-item>
- <text>stepper-item3</text>
- </stepper-item>
- </stepper>
- </div>
- /* xxx.css */
- .container {
- width:100%;
- height:100%;
- flex-direction: column;
- background-color: #F1F3F5;
- }
- text{
- width: 100%;
- height: 100%;
- text-align: center;
- }

通过设置label属性,自定义stepper-item的提示按钮。
- <!-- xxx.hml -->
- <div class="container">
- <stepper index="1">
- <stepper-item label="{{label_1}}">
- <text>stepper-item1</text>
- </stepper-item>
- <stepper-item label="{{label_2}}">
- <text>stepper-item2</text>
- </stepper-item>
- <stepper-item label="{{label_3}}">
- <text>stepper-item3</text>
- </stepper-item>
- <stepper-item>
- <text>stepper-item4</text>
- </stepper-item>
- </stepper>
- </div>
- /* xxx.css */
- .container {
- width:100%;
- height:100%;
- flex-direction: column;
- background-color: #F1F3F5;
- }
- text{
- width: 100%;
- height: 100%;
- text-align: center;
- }
- // xxx.js
- export default {
- data: {
- label_1:{
- nextLabel: 'NEXT',
- status: 'normal'
- },
- label_2:{
- prevLabel: 'BACK',
- nextLabel: 'NEXT',
- status: 'normal'
- },
- label_3:{
- prevLabel: 'BACK',
- nextLabel: 'END',
- status: 'disabled'
- },
- },
- }

stepper组件默认填充父容器,通过border和background-color设置边框、背景色。
- <!-- xxx.hml -->
- <div class="container" >
- <div class="stepperContent">
- <stepper class="stepperClass">
- <stepper-item>
- <text>stepper-item1</text>
- </stepper-item>
- </stepper>
- </div>
- </div>
- /* xxx.css */
- .container {
- width:100%;
- height:100%;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- background-color:#F1F3F5;
- }
- .stepperContent{
- width: 300px;
- height: 300px;
- }
- .stepperClass{
- border:1px solid silver ;
- background-color: white;
- }
- text{
- width: 100%;
- height: 100%;
- text-align: center;
- }

stepper分别添加finish,change,next,back,skip事件。
当change与next或back同时存在时,会先执行next或back事件再去执行change事件。
重新设置index属性值时要先清除index的值再重新设置,否则检测不到值的改变。
- <!-- xxx.hml -->
- <div class="container" style="background-color:#F1F3F5;">
- <div >
- <stepper onfinish="stepperFinish" onchange="stepperChange" onnext="stepperNext" onback="stepperBack" onskip="stepperSkip" id="stepperId" index="{{index}}">
- <stepper-item>
- <text>stepper-item1</text>
- <button value="skip" onclick="skipClick"></button>
- </stepper-item>
- <stepper-item>
- <text>stepper-item2</text>
- <button value="skip" onclick="skipClick"></button>
- </stepper-item>
- <stepper-item>
- <text>stepper-item3</text>
- </stepper-item>
- </stepper>
- </div>
- </div>
- /* xxx.css */
- .container {
- width:100%;
- height:100%;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- }
- stepper-item{
- width: 100%;
- flex-direction: column;
- align-self: center;
- justify-content: center;
- }
- text{
- margin-top: 45%;
- justify-content: center;
- align-self: center;
- margin-bottom: 50px;
- }
- button{
- width: 80%;
- height: 60px;
- margin-top: 20px;
- }
- // xxx.js
- import promptAction from '@ohos.promptAction';
- export default {
- data: {
- index:0,
- },
- stepperSkip(){
- this.index=2;
- },
- skipClick(){
- this.$element('stepperId').setNextButtonStatus({status: 'skip', label: 'SKIP'});
- },
- stepperFinish(){
- promptAction.showToast({
- message: 'All Finished'
- })
- },
- stepperChange(e){
- console.info("stepperChange"+e.index)
- promptAction.showToast({
- // index表示当前步骤的序号
- message: 'Previous step: '+e.prevIndex+"-------Current step:"+e.index
- })
- },
- stepperNext(e){
- console.info("stepperNext"+e.index)
- promptAction.showToast({
- // pendingIndex表示将要跳转的序号
- message: 'Current step:'+e.index+"-------Next step:"+e.pendingIndex
- })
- var index = {pendingIndex:e.pendingIndex }
- return index;
- },
- stepperBack(e){
- console.info("stepperBack"+e.index)
- var index = {pendingIndex: e.pendingIndex }
- return index;
- }
- }

合作咨询
我们的专家服务团队将竭诚为您提供专业的合作咨询服务
解决方案
精准高效的一站式服务支持,助力开发者商业成功