簡體   English   中英

顫動中列表小部件內的多張卡片

[英]Multiple cards inside a list widget in flutter

我是 Flutter 的初學者,我正在創建一個演示應用程序,但在該應用程序中,我想在列表小部件中添加另一張卡片(代碼如下所述),但不知何故它顯示了一個錯誤。

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';


class Intro extends StatefulWidget {
  const Intro({Key? key}) : super(key: key);

  @override
  _IntroState createState() => _IntroState();
}

class _IntroState extends State<Intro> {

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: Column(
            children:

    List<Widget>[
      Container(
        child: Padding(
          padding: const EdgeInsets.all(36.0),
          child: Center(
            child: Card(
              child: Column(
                mainAxisSize: MainAxisSize.min,
                children: <Widget>[
                  const ListTile(
                    title: Text('Goal'),
                  ),
                  Row(
                    mainAxisAlignment: MainAxisAlignment.end,
                    children: <Widget>[
                      TextButton(
                        child: const Text('>'),
                        onPressed: () {
                          showAlertDialog(context);
                        },
                      ),
                      const SizedBox(width: 8),
                    ],
                  ),
                ],
              ),
            ),
          ),
        ),
      ),
      Container(
        child: Padding(
          padding: const EdgeInsets.all(36.0),
          child: Center(
            child: Card(
              child: Column(
                mainAxisSize: MainAxisSize.min,
                children: <Widget>[
                  const ListTile(
                    title: Text('objective'),
                  ),
                  Row(
                    mainAxisAlignment: MainAxisAlignment.end,
                    children: <Widget>[
                      TextButton(
                        child: const Text('>'),
                        onPressed: () {
                          showAlertDialog1(context);
                        },
                      ),
                      const SizedBox(width: 8),
                    ],
                  ),
                ],
              ),
            ),
          ),
        ),
      ),
    ]
    )
    );
  }
}

showAlertDialog(BuildContext context) {
  // Create button
  Widget okButton = FlatButton(
    child: Text("OK"),
    onPressed: () {
      Navigator.of(context).pop(MaterialPageRoute(builder: (context) => Intro()));
    },
  );

  // Create AlertDialog
  AlertDialog alert = AlertDialog(
    title: Text("Simple Alert"),
    content: Text("This is an alert message."),
    actions: [
      okButton,
    ],
  );

  // show the dialog
  showDialog(
    context: context,
    builder: (BuildContext context) {
      return alert;
    },
  );
}

showAlertDialog1(BuildContext context) {
  // Create button
  Widget okButton = FlatButton(
    child: Text("OK"),
    onPressed: () {
      Navigator.of(context).pop(MaterialPageRoute(builder: (context) => Intro()));
    },
  );

  // Create AlertDialog
  AlertDialog alert = AlertDialog(
    title: Text("Simple Alert"),
    content: Text("This is an alert message."),
    actions: [
      okButton,
    ],
  );

  // show the dialog
  showDialog(
    context: context,
    builder: (BuildContext context) {
      return alert;
    },
  );
}

另外,我嘗試創建一個小部件循環,但它仍然在小部件構建(BuildContext 上下文)中顯示錯誤!

所以告訴我一個成功運行這段代碼的方法!

刪除List<widget>Column( children:

試試這個代碼:

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';


class Intro extends StatefulWidget {
 const Intro({Key? key}) : super(key: key);

 @override
  _IntroState createState() => _IntroState();
 }

class _IntroState extends State<Intro> {

@override
Widget build(BuildContext context) {
return Scaffold(
    body: Column(
        children:[
  Container(
    child: Padding(
      padding: const EdgeInsets.all(36.0),
      child: Center(
        child: Card(
          child: Column(
            mainAxisSize: MainAxisSize.min,
            children: <Widget>[
              const ListTile(
                title: Text('Goal'),
              ),
              Row(
                mainAxisAlignment: MainAxisAlignment.end,
                children: <Widget>[
                  TextButton(
                    child: const Text('>'),
                    onPressed: () {
                      showAlertDialog(context);
                    },
                  ),
                  const SizedBox(width: 8),
                ],
              ),
            ],
          ),
        ),
      ),
    ),
  ),
  Container(
    child: Padding(
      padding: const EdgeInsets.all(36.0),
      child: Center(
        child: Card(
          child: Column(
            mainAxisSize: MainAxisSize.min,
            children: <Widget>[
              const ListTile(
                title: Text('objective'),
              ),
              Row(
                mainAxisAlignment: MainAxisAlignment.end,
                children: <Widget>[
                  TextButton(
                    child: const Text('>'),
                    onPressed: () {
                      showAlertDialog1(context);
                    },
                  ),
                  const SizedBox(width: 8),
                ],
              ),
            ],
          ),
        ),
      ),
    ),
  ),
]
)
);
}}}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM