dart - 如何在 ListTile 中添加 AlertDialog

标签 dart flutter dialog flutter-layout

我想在每次点击 ListTile 时显示一个 AlertDialog。我想在 ListTileOnTap 函数中添加 AlertDialog,如代码所示。

    import "package:flutter/material.dart";

void main() {
  runApp(MaterialApp(
    debugShowCheckedModeBanner: false,
    title: 'Exploring Ui Widgets',
    home: Scaffold(
      body: getListView(),
    ),
  ));
}

Widget getListView() {
  var listview = ListView(
    children: <Widget>[
      ListTile(
        leading: Icon(Icons.accessible),
        title: Text('Get Up!'),
        subtitle: Text('Use your Legs!'),
        trailing: Icon(Icons.accessible_forward),
        onTap: () {
          // I want to add a AlertDialog here!
        },
      ),
      ListTile(
        leading: Icon(Icons.airline_seat_individual_suite),
        title: Text('Wake Up!'),
        subtitle: Text('Dont Sleep!'),
        trailing: Icon(Icons.airline_seat_flat_angled),
      )
    ],
  );
  return listview;
   }

最佳答案

你可以这样做:

onTap: () => alertDialog(context),

然后声明这个方法:

void alertDialog(BuildContext context) {
  var alert = AlertDialog(
    title: Text("My title"),
    content: Text("Dialog description"),
  );
 showDialog(context: context, builder: (BuildContext context) => alert);
}

在你的代码中它看起来像这样:

import "package:flutter/material.dart";

void main() {
  runApp(MaterialApp(
    debugShowCheckedModeBanner: false,
    title: 'Exploring Ui Widgets',
    home: Scaffold(
      body: getListView(),
    ),
  ));
}

Widget getListView() {
  var listview = ListView(
    children: <Widget>[
      ListTile(
        leading: Icon(Icons.accessible),
        title: Text('Get Up!'),
        subtitle: Text('Use your Legs!'),
        trailing: Icon(Icons.accessible_forward),
        onTap: () {
          onTap: () => alertDialog(context),
        },
      ),
      ListTile(
        leading: Icon(Icons.airline_seat_individual_suite),
        title: Text('Wake Up!'),
        subtitle: Text('Dont Sleep!'),
        trailing: Icon(Icons.airline_seat_flat_angled),
      )
    ],
  );
  return listview;
}

void alertDialog(BuildContext context) {
  var alert = AlertDialog(
    title: Text("Dialog title"),
    content: Text("Dialog description"),
  );
 showDialog(context: context, builder: (BuildContext context) => alert);
}

关于dart - 如何在 ListTile 中添加 AlertDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56097585/

相关文章:

sorting - Flutter类型 '_InternalLinkedHashMap<String, dynamic>'不是 'Comparable<dynamic>'类型的子类型

database - 为什么Cloud Firestore更新这么多?

flutter - Flutter Navigator “argument type '上下文'不能分配给参数类型 'BuildContext'”

flutter - 如何在数据来自API的flutter中创建下拉列表?

android - 使用底部应用栏选项卡导航 - flutter

flutter - 我试图将object.parameter传递到自定义小部件中并失败

java - 仅在OptionsItemSelected 上显示文本的弹出窗口

android - 显示对话框错误 - 已泄漏窗口 com.android.internal.policy.impl.phonewindow

android - 如何禁用/启用对话框负正按钮?

flutter - 由于行 flutter 之间的列而导致像素错误