簡體   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