flutter 如何使用函数在按钮内部调用它

yvfmudvl  于 2022-12-27  发布在  Flutter
关注(0)|答案(1)|浏览(151)

目前,我使用导航来调出对话框。但是,当然,页面会发生变化,屏幕将只显示对话框。如我所示如下:

我想修复它,所以当对话框出现时,它后面的页面不会消失,就像下面的图片。

这是我的代码,使用NavigationHelper,屏幕将移动到另一个屏幕以显示对话框,我想更改它。

PopupMenuItem(
     onTap: () {
          GetIt.I<NavigationHelper>().go('/alert_delete_item');
     },
     value: 'Delete',

这是一个处理对话框的模板,但我不知道如何使用它。

Future<T?> showCustomDialog<T>(BuildContext context) {
    return showDialog<T>(
      context: context,
      builder: (context) => Dialog(
        shape: RoundedRectangleBorder(
          borderRadius: BorderRadius.circular(16),
        ),
        child: this,
      ),
    );
  }

有没有使用函数的教程?

vngu2lb8

vngu2lb81#

应该试试这个

import 'package:flutter/material.dart';

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

  class MyApp extends StatelessWidget {
    @override
    Widget build(BuildContext context) {
      return MaterialApp(
        title: 'Flutter',
        home: Scaffold(
          appBar: AppBar(title: Text('Dummy Screen')), 
          body: HomePage()
        )
      );
    }
  }

  class HomePage extends StatelessWidget {
    @override
    Widget build(BuildContext context) {
      return GestureDetector(
        onTap: () {showAlertDialoge(context);},
        child: ListView.builder(
          itemCount: 20,
          itemBuilder: (context, index) {
            return ListTile(
              title: Text("Heading ${index}" , style: Theme.of(context).textTheme.headline5,),
              subtitle: Text("This is subtitle ${index}" ,),
            );
          },
        ),
      );
    }

    void showAlertDialoge(BuildContext context) {
      showDialog(
        context: context,
        builder: (context) => AlertDialog(
          content: Text("Dialog Box Occur in front of screen", style: TextStyle(fontSize: 16),),
        )
      );
    }
  }

输出:

相关问题