#flutter #dart
#flutter #dart
Вопрос:
Я создал список флажков и хочу, чтобы выбранный / отмеченный элемент был передан на страницу корзины, где вы сможете увидеть, что вы выбрали. когда я нажимаю значок корзины, чтобы просмотреть выбранные элементы, я просто получаю пустой экран.
Ваш вклад будет высоко оценен.
Основной виджет
import 'package:cart_app/Basket.dart';
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Flutter Demo',
theme: ThemeData(),
home: MyHomePage(),
routes: {
Basket.routeName: (context) => Basket(),
},
);
}
}
Страница списка продуктов
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
Map<String, bool> values = {
"GIN COCKTAILS nClover Club t R65": false,
"Beers amp; Ciders nHeineken NRB t R29": false,
"Vodka nCiroc t R35": false,
"Vodka nCruz Vodka t R30": false,
"COGNAC nHennesy t R40": false,
"Tequilla nEl Jimador t R30": false,
"Non-Alcoholic nSoft-Drink t R20": false,
"WHISK[E]Y nJohnie Walker Red t R25": false,
};
var toggle = false;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("The Wing Republic"),
actions: <Widget>[
IconButton(
icon: Icon(Icons.shopping_basket),
onPressed: () {
Navigator.of(context)
.pushNamed(Basket.routeName, arguments: values);
},
),
],
),
body: ListView(
children: values.keys.map((String key) {
return CheckboxListTile(
title: Text(key),
subtitle: Text(""),
isThreeLine: false,
value: values[key],
onChanged: (bool value) {
setState(() {
values[key] = value;
});
},
);
}).toList(),
),
);
}
}
Страница корзины. Это страница, на которой я хочу удалить данные со страницы списка продуктов
import 'package:flutter/material.dart';
class Basket extends StatelessWidget {
static const routeName = '/Basket';
@override
Widget build(BuildContext context) {
final data = ModalRoute.of(context).settings.arguments as Map<String, bool>;
return Scaffold();
}
}
Ответ №1:
Scaffold() в вашем классе Basket пуст. Это приведет к черному или «пустому» экрану. Добавьте несколько виджетов для отображения значений, переданных виджету корзины:
Scaffold(
body: Container (
child: Column(
children: Widgets[
// Text Widgets with the passed values
Text(data["key"]),
Text(data["key"])
]
)
)
)
Комментарии:
1. Я новичок в flutter, поэтому мне было интересно, какие виджеты я должен использовать для отображения выбранных элементов из списка на странице корзины?
2. Я обновил свой ответ. Я бы предложил начать с базового текстового виджета. Документация Flutter также чрезвычайно полезна при поиске виджетов для отображения информации.