flutter的下拉框DropdownButton的二级联动效果

flutter的下拉框DropdownButton的二级联动效果:

效果图2张:

     

  直接复制可运行。

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

class AllStudent extends StatefulWidget {
  @override
  _AllStudentState createState() => _AllStudentState();
}

class _AllStudentState extends State<AllStudent> {

  var isChapterValue;

  String var_school_name ;
  String var_stu_name ;

  String select_school_name ;


  @override
  Widget build(BuildContext context) {

    List<School> schools = List();
    schools.add(School("yanta","dayanta"));
    schools.add(School("changan","changanqu"));
    schools.add(School("lianhu","lianhugongyuan"));
    
    List<Stu> getStu(String school_name){
      List<Stu> stuList = List();
      if("yanta"==school_name){
        stuList.add(Stu("yantayi","z"));
        stuList.add(Stu("yantaer","z"));
        stuList.add(Stu("yantasan","z"));
      }else if("lianhu"==school_name){

        stuList.add(Stu("lianhuyi","z"));
        stuList.add(Stu("lianhuer","l"));
        stuList.add(Stu("lianhusan","w"));
      }else if("changan"==school_name){
        stuList.add(Stu("changanyi","z"));
        stuList.add(Stu("changaner","l"));
        stuList.add(Stu("changansan","w"));
      }
      return stuList;
    }

    return Scaffold(
      appBar: AppBar(
        title: Text("3456789"),
      ),
      body: Row(
        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
        children: [
          DropdownButton<String>(
            value: var_school_name,
            onChanged: (String school_name) {
              setState(() {
                var_school_name = school_name;
                select_school_name = school_name;
                var_stu_name =getStu(select_school_name)[0].name;

              });
            },
            hint: Text("请选择ss"),
            items: schools
                .map<DropdownMenuItem<String>>((School school) {
              return DropdownMenuItem<String>(
                value: school.school_name,
                child: Text(school.school_name),
              );
            })
                .toList(),
          ),
          DropdownButton<String>(
            hint: Text("请选择"),
            value: var_stu_name,
            onChanged: (String stu_name) {
              setState(() {
                var_stu_name = stu_name;
              });
            },
            items: getStu(select_school_name).map<DropdownMenuItem<String>>((Stu stu) {
              return DropdownMenuItem<String>(
                value: stu.name,
                child: Text(stu.name),
              );
            }).toList(),
          ),
        ],
      ),
    );
  }
}

class School{
  String school_name;
  String school_address;
  School(this.school_name,this.school_address);
}
class Stu{
  String name;
  String indexLetter;
  Stu(this.name,this.indexLetter);
}

 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值