flutter 下拉菜单封装
Posted samnicole1809
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flutter 下拉菜单封装相关的知识,希望对你有一定的参考价值。
直接上代码,简单的下拉菜单封装
import ‘package:flutter/cupertino.dart‘; import ‘package:flutter/material.dart‘; import ‘package:flutter_app/utils/CXColors.dart‘; class DropDownSelect extends StatelessWidget { final String label; String value; final List<DropdownMenuItem> items; final ValueChanged onChanged; bool isText; DropDownSelect({Key key, this.label, this.value, this.items, this.onChanged, this.isText = false}); @override Widget build(BuildContext context) { return new Container( height: 50.0, padding: EdgeInsets.fromLTRB(20.0, 0, 20.0, 0), decoration: new BoxDecoration( border: Border( bottom: BorderSide(color: CXColors.titleColor_cc, width: 0.5), ), ), child: Row( children: <Widget>[ new Expanded( flex: 3, child: new Container( child: new Text( this.label, style: TextStyle(fontSize: 16.0, color: Colors.black87), ), ), ), new Expanded( flex: 8, child: Container( padding: EdgeInsets.only(top: 4.0), child: this.isText ? Text(this.value) : DropdownButton( icon: Icon( Icons.arrow_downward, color: Colors.black26, ), style: TextStyle(fontSize: 15.0, color: Colors.black54), iconSize: 22.0, isExpanded: true, underline: new Container(), hint: Text(‘请选择‘, style: TextStyle( color: Colors.black26 ), ), items: this.items, onChanged: onChanged, value: this.value, ), ), ), ], ), ); } }
使用方式:
// 声明items List<DropdownMenuItem> _items = [ new DropdownMenuItem(child: Text(‘是‘), value: ‘是‘), new DropdownMenuItem(child: Text(‘否‘), value: ‘否‘), ]; // 声明value,默认值是否 String _value = ‘否‘; // 使用Widget DropDownSelect( label: ‘下拉菜单‘, items: _items, value: _value, isText: false, // 为true时显示不可编辑文本,为false时显示下拉菜单,主要用于展示和编辑 onChanged: (T) { setState(() { _value = T; }); }, ),
以上是关于flutter 下拉菜单封装的主要内容,如果未能解决你的问题,请参考以下文章
带有 ListTiles 和 Button 行的 Flutter 下拉菜单
我们如何在下拉菜单中更改 Flutter DropdownMenuItem 的宽度/填充?
如何将 Firestore 文档列表绑定到 Flutter 中的下拉菜单?