国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Flutter質感設計之持久底部面板

2019-10-21 21:40:29
字體:
來源:轉載
供稿:網友

持久性底部面板可以用于補充應用主要內容的信息,即使用戶與應用程序的其他控件進行互動,也仍然可以看到持久的底部面板。可以使用Scaffold.showBottomSheet函數創建和顯示持久性底部面板。

import 'package:flutter/material.dart';class MyApp extends StatefulWidget { @override _MyApp createState() => new _MyApp();}class _MyApp extends State<MyApp> { /** *GlobalKey:整個應用程序中唯一的鍵 ScaffoldState:Scaffold框架的狀態 解釋:_scaffoldKey的值是Scaffold框架狀態的唯一鍵 */ final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>(); // VoidCallback:沒有參數并且不返回數據的回調 VoidCallback _showBottomSheetCallback; @override void initState() { super.initState(); _showBottomSheetCallback = _showBottomSheet; } void _showBottomSheet() { setState(() {  // 禁用按鈕  _showBottomSheetCallback = null; }); /**  *currentState:獲取具有此全局鍵的樹中的控件狀態  showBottomSheet:顯示持久性的質感設計底部面板  解釋:聯系上文,_scaffoldKey是Scaffold框架狀態的唯一鍵,因此代碼大意為,   在Scaffold框架中顯示持久性的質感設計底部面板  */ _scaffoldKey.currentState.showBottomSheet<Null>((BuildContext context){  final ThemeData themeData = Theme.of(context);  return new Container(  decoration: new BoxDecoration(   border: new Border(top: new BorderSide(color: themeData.disabledColor))  ),  child: new Padding(   padding: const EdgeInsets.all(32.0),   child: new Text(   '這是一個持久性的底部面板,向下拖動即可將其關閉',   textAlign: TextAlign.center,   style: new TextStyle(    color: themeData.accentColor,    fontSize: 24.0   )   )  )  ); }) /**  *closed:當此對象控制的元素不再可見時完成  whenComplete:注冊將在此未來完成時調用的函數  解釋:聯系上文,closed控制的元素是新構建的質感設計底部面板,因此代碼大意為,   注冊底部面板不再可見時調用的函數  */ .closed.whenComplete((){  // mounted:bool值,這個State對象當前是否在樹中  if (mounted) {  setState(() {   // 重新啟用按鈕   _showBottomSheetCallback = _showBottomSheet;  });  } }); } void _showMessage() { // showDialog<T>:顯示應用程序當前內容上方的對話框 showDialog<Null>(  context: context,  // AlertDialog:質感設計中的告警對話框  child: new AlertDialog(  // content:對話框的可選內容,以淺色字體顯示在對話框的中心  content: new Text('你點擊了浮動按鈕'),  // actions:顯示在對話框底部的可選操作  actions: <Widget>[   // FlatButton:質感設計中的平面按鈕   new FlatButton(   onPressed: () { Navigator.pop(context); },   child: new Text('確定')   )  ]  ), ); } @override Widget build(BuildContext context) { return new Scaffold(  key: _scaffoldKey,  appBar: new AppBar(  title: new Text('底部面板')  ),  floatingActionButton: new FloatingActionButton(  onPressed: _showMessage,  backgroundColor: Colors.redAccent[200],  child: new Icon(Icons.add)  ),  body: new Center(  child: new RaisedButton(   onPressed: _showBottomSheetCallback,   child: new Text('顯示底部面板')  )  ) ); }}void main() { runApp(new MaterialApp( title: 'Flutter Demo', home: new MyApp() ));}

Flutter,質感設計,底部面板

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 石首市| 云浮市| 巍山| 普陀区| 略阳县| 宁武县| 和田县| 太白县| 贵州省| 高安市| 九台市| 山丹县| 洛扎县| 瑞安市| 南郑县| 乌苏市| 忻城县| 吉木萨尔县| 聊城市| 兴仁县| 太原市| 许昌市| 大同县| 台湾省| 大英县| 天柱县| 昌黎县| 镶黄旗| 石嘴山市| 政和县| 罗江县| 佳木斯市| 阜新| 团风县| 靖安县| 洛隆县| 古丈县| 万年县| 新安县| 阳曲县| 波密县|