繁体   English   中英

当用户点击 BottomNavigationBarItem 时如何显示 flutter modalBottomSheet

[英]How to display a flutter modalBottomSheet when user taps a BottomNavigationBarItem

当用户点击 BottomNavigationBarItem 时,我想显示一个 modalBottomsheet,我试图将代码放在 function 中并在脚手架的主体中调用它,但这不起作用..关于如何做到这一点的任何想法? 在下面查看我的代码

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

class More extends StatefulWidget {
  More({Key key}) : super(key: key);

  @override
  _MoreState createState() => _MoreState();
}

class _MoreState extends State<More> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text(
            'Modal Bottom Sheet',
            style: TextStyle(color: Colors.white),
          ),
          centerTitle: true,
        ),
        body: displayModal());
  }

  displayModal() {
    showBottomSheet(
      context: context,
      builder: (context) => Container(child: Text("data")),
    );
  }
}

showBottomSheet是异步 function。 你应该使用这样的东西

 body: Center(
          child: ElevatedButton(
            onPressed: () {
              displayModal();
            },
            child: Text("show dialog"),
          ),
        )

如果要在小部件加载时显示对话框,请在有状态小部件的 initState 中调用对话框

  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addPostFrameCallback((_) async {
      displayModal();
    });
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM