Flutter - получить значение в тексте ListView для вставки в TextField в другой файл дротика
main.dart изображение homeview.dart
У меня есть проблема, у меня есть 2 различных файла дартс, main.dart и homeview.dart, здесь я специально сделал собственный диалог на homeview.dart, диалог содержит просмотр списка и только строки данных, я хочу сделать это и в списке элементов я создать виджет Inkwell, чтобы иметь возможность OnTap:, и в main.dart он содержит TextFormField,
Вопрос в том, как, когда в элементе списка onTap текстовая строка перемещается в TextFormField на main.dart?
homeview.dart
final List<String> _listViewTypeInvest = [
"12 Months Invest",
"18 Months Invest",
"24 Months Invest",
];
child: ListView(
children: _listViewTypeInvest
.map( (data) => ListTile(
title: Text(data),
onTap: () => _scaffoldKey.currentState.showSnackBar(SnackBar(
content: Text(
"$data Clicked!",
style: TextStyle(fontFamily: "Montserrat"),
),
duration: Duration(seconds: 1),
)),
))
.toList(),
),
1 ответ
Вы могли бы работать с Function
Перезвоните. Так в вашем homeview.dart
Вы хотите добавить функцию в качестве свойства.
class HomeView extends StatelessWidget {
final void Function(String) onStringSelected;
const HomeView({Key key, @required this.onStringSelected}) : super(key: key);
...
Теперь вы можете вызвать эту функцию, как только пользователь нажмет кнопку в вашем диалоге.
Так что это будет вашим onTap()
функция:
onTap: () {
onStringSelected(data); // this fires the callback function
_scaffoldKey.currentState.showSnackBar(SnackBar(
content: Text(
"$data Clicked!",
style: TextStyle(fontFamily: "Montserrat"),
),
duration: Duration(seconds: 1),
));
}),
Где бы вы ни создавали homeview.dart
файл, который вы можете теперь слушать для этого нового onStringSelected
функция обратного вызова и, например, установить свойство текста вашего TextFormField.
HomeView(
onStringSelected: (myDataString) {
print("The user clicked $myDataString");
},
);