美文网首页
Flutter-DropdownButtonFormField实

Flutter-DropdownButtonFormField实

作者: 阿博聊编程 | 来源:发表于2022-05-11 00:21 被阅读0次
配图来自网络,如侵必删

在日常的开发当中,我们在做选择框的时候,会想做下拉选择框Flutter给我们提供了Material类型的下拉选择框,分享一下我了解到了关于DropdownButtonFormField的知识,并简单实现下来选择框

简单实现下拉选择框

这里是通过DropdownButtonFormField组件来实现下拉选择框的,代码如下:

DropdownButtonFormField<String>(
          isExpanded: true,
          decoration: const InputDecoration(
              border: OutlineInputBorder(), labelText: 'SEX'),
          // 设置默认值
          value: '男',
          // 选择回调
          onChanged: (String? newPosition) {
            setState(() {});
          },
          // 传入可选的数组
          items: SEX.map((String sex) {
            return DropdownMenuItem(value: sex, child: Text(sex));
          }).toList(),
        ),

效果图:


下拉选择框效果图

所有的Dart代码,可以复制到编译器上直接运行:

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key, required this.title}) : super(key: key);

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    const SEX = ['男', '女', '保密'];
    return Scaffold(
      appBar: AppBar(
        // Here we take the value from the MyHomePage object that was created by
        // the App.build method, and use it to set our appbar title.
        title: Text(widget.title),
      ),
      body: Container(
        padding: const EdgeInsets.only(top: 10, right: 10, left: 10),
        child: DropdownButtonFormField<String>(
          isExpanded: true,
          decoration: const InputDecoration(
              border: OutlineInputBorder(), labelText: 'SEX'),
          // 设置默认值
          value: '男',
          // 选择回调
          onChanged: (String? newPosition) {
            setState(() {});
          },
          // 传入可选的数组
          items: SEX.map((String sex) {
            return DropdownMenuItem(value: sex, child: Text(sex));
          }).toList(),
        ),
      ),
    );
  }
}

属性使用

选择回调,这个是非常重要的,要不然点击不会有效果的:

 onChanged: (String? newPosition) {
            setState(() {});
},

设置选择数据,我是定义了一个数组,在使用数组的时候:

items: SEX.map((String sex) {
    return DropdownMenuItem(value: sex, child: Text(sex));
}).toList(),

设置默认值:

value: '男',

相关文章

  • Flutter-DropdownButtonFormField实

    在日常的开发当中,我们在做选择框的时候,会想做下拉选择框。Flutter给我们提供了Material类型的下拉选择...

  • 虚与实

    实而虚之,虚而实之,实而实之,虚而虚之,先虚后实,先实后虚,外虚内实,外实内虚,虚虚实实,虚实相乱等,都是虚实...

  • 看完电影《头号玩家》写了一首小诗《实》 虚幻之雾压向地面, 灰色的霭笼罩大地, 四周是虚,还是实 ? 摸索向前走,...

  • Hi 吉普赛,原谅我许久没呼应你。 但我知道,你一直在这里,从未离弃。 你问我好不好? 我只能告诉你: 携女寻梅,...

  • 我站在夏日里, 艳阳高照,我的眼很无奈 我的心情, 也被这阳光刺痛 化作,片...

  • 我看你时眯上了眼睛 光圈战栗收紧 但景深为零 分毫不动

  • 我看你时眯上了眼睛 光圈战栗收紧 但景深为零 分毫不动

  • 不要想着用什么来替代你内心的虚无,面对才是最真实的

  • 《实》

    春日播种入壤中,夏日绿装方成荫。 秋日丰收盈九石,冬日犹立寒霜枝。

网友评论

      本文标题:Flutter-DropdownButtonFormField实

      本文链接:https://www.haomeiwen.com/subject/auorurtx.html