【问题标题】:ListTile onTap: () -> trigger error: Error: Not a constant expressionListTile onTap: () -> 触发错误:错误:不是常量表达式
【发布时间】:2020-03-18 13:37:07
【问题描述】:

我有以下代码:

drawer: Drawer(
  child: ListView(
    ...
    children: const <Widget>[

    SizedBox(
      ...
    ),

      ListTile(
        leading: Icon(Icons.message),
        title: Text('Reportes de daños recibidos'),
        ***onTap: () {
          Navigator.push(
              context,
              MaterialPageRoute(builder: (context) => ReportsToDo()));
        },***
      ),

而带有 ListTile onTap: () 的行会导致以下两个问题。我错过了什么吗?从文档中获取此示例。

lib/PropertyAgentMain.dart:38:27: Error: Method invocation is not a constant expression.
                Navigator.push(
                          ^^^^
lib/PropertyAgentMain.dart:37:22: Error: Not a constant expression.
              onTap: () {
                 ^^

谢谢,

哈维尔·卡塞雷斯

【问题讨论】:

  • 尝试删除const关键字
  • 已经尝试过了,但是没有用:(

标签: flutter


【解决方案1】:

我刚刚通过删除 listview children 属性的 CONST 关键字在一个最小的应用程序中复制了您的代码,并且它运行良好。看这里

import 'package:flutter/material.dart';
import 'package:ui_learning/appScreen.dart';
void main() {
runApp(MaterialApp(
title: 'Flutter Tutorial',
home: TutorialHome(),
));
}

class TutorialHome extends StatelessWidget {
@override
Widget build(BuildContext context) {
// Scaffold is a layout for the major Material Components.
return Scaffold(
  drawer: Drawer(
      child: ListView(children: <Widget>[
    SizedBox(
      height: 10,
    ),
    ListTile(
      leading: Icon(Icons.message),
      title: Text('Reportes de daños recibidos'),
      onTap: () {
        Navigator.push(
            context, MaterialPageRoute(builder: (context) => AppScreen()));
      },
    )
  ])),
  appBar: AppBar(
    leading: IconButton(
      icon: Icon(Icons.menu),
      tooltip: 'Navigation menu',
      onPressed: null,
    ),
    title: Text('Example title'),
    actions: <Widget>[
      IconButton(
        icon: Icon(Icons.search),
        tooltip: 'Search',
        onPressed: null,
      ),
    ],
  ),
  // body is the majority of the screen.
  body: Center(
    child: Text('Hello, world!'),
  ),
  floatingActionButton: FloatingActionButton(
    tooltip: 'Add', // used by assistive technologies
    child: Icon(Icons.add),
      onPressed: null,
     ),
  );
 }
 }

【讨论】:

    猜你喜欢
    • 2020-03-09
    • 1970-01-01
    • 2021-12-03
    • 2023-01-31
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多