0

以下是我的 homepage.dart 的一部分,它运行良好,但点击 IconButton 没有任何反应。

 ...
 return Scaffold(
  appBar: AppBar(
    title: Text('Lorem Ipsum'),
    leading: IconButton(      
      icon: Icon(Icons.info),
      onPressed: () => AboutWidget(),
    ),
  ),
  body: ...

这是我的 about_widget.dart 文件,其中定义了我的 AboutWidget。我究竟做错了什么?

 import 'package:flutter/material.dart';
class AboutWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return AlertDialog(
      title: Text('data'),
    );
  }
}
4

3 回答 3

7

你必须调用showDialog函数

AppBar(
  title: Text('Lorem Ipsum'),
  leading: IconButton(
    icon: Icon(Icons.info),
    onPressed: () => showDialog(
      context: context,
      builder: (context) => AboutWidget(),
    ),
  ),
)
于 2019-12-20T10:43:30.593 回答
3

使用 Flutter 原生showDialog函数显示对话框。

对于您的代码,您可以尝试以下操作:

return Scaffold(
  appBar: AppBar(
    title: Text('Lorem Ipsum'),
    leading: IconButton(      
      icon: Icon(Icons.info),
      onPressed: () => showDialog(
        context: context,
        builder: (context){
          return AboutWidget();
        }
      ),
    ),
  ),
);

因此,当按下按钮时,您应该调用该showDialog方法。

于 2019-12-20T10:45:16.730 回答
0

按下您正在呼叫的按钮AboutWidget()。它是一个无状态的小部件。所以它需要在你的应用程序的构建方法中构建。在按钮上单击这不会显示对话框。而是使用showDialog方法并在其中使用警报对话框在屏幕上显示对话框。

于 2019-12-20T10:44:27.933 回答