dart 如何编写一个FloatingActionButton来添加一张卡片到一个列表中,并包含另一个页面的详细信息?

2hh7jdfx  于 2023-07-31  发布在  其他
关注(0)|答案(1)|浏览(68)

在Android Studio中使用Flutter
我基本上想创建一个动作按钮,在列表中创建一个新的卡。
我的卡片是从一个单独的类导入的,这是它们的格式,但是每个新的卡片都会有来自用户的新数据。这些字段包括标题、日期、时间等。但我不知道怎么编码
按按钮->导航到input_form.dart ->点击确认创建卡片->卡片进入列表视图,其他卡片按时间顺序以这种方式制作。

vpfxa7rd

vpfxa7rd1#

你可以使用getx或其他状态管理,但如果你不想使用它们,你可以试试这个。假设这是表单页面中的保存按钮,该方法创建一个card类的对象并将其传递给卡片列表页面。

ElevatedButton(
            onPressed: () {
              if (_formKey.currentState!.validate()) {
                // Create a new card model with the provided data
                CardModel newCard = CardModel(
                  title: _titleController.text,
                  date: _selectedDate,
                  time: _selectedTime,
                );

                // Pass the new card back to the previous screen
                Navigator.pop(context, newCard);
              }
            },
            child: Text('Confirm'),
          ),

字符串
在卡片列表页面中,您可以创建类似FAB来访问卡片对象。

floatingActionButton: FloatingActionButton(
    onPressed: () async {
      // Navigate to the input form to create a new card
      final newCard = await Navigator.push(
        context,
        MaterialPageRoute(builder: (context) => InputForm()),
      );

      // Add the new card to the list if the user confirmed the input
      if (newCard != null) {
        setState(() {
          cards.add(newCard);
          // Sort the list by date in ascending order
          cards.sort((a, b) => a.date.compareTo(b.date));
        });
      }
    },
    child: Icon(Icons.add),
  ),

相关问题