[英]Flutter - get value in ListView text to paste on TextField on another dart file
我有一個問題我有2個不同的dart文件,main.dart和homeview.dart在這里我故意在homeview.dart上做了一個自定義對話框,對話框包含listview和只有數據字符串,我想要它和項目列表上我創建一個Inkwell小部件,以便能夠OnTap :,並在main.dart中包含TextFormField,
問題是如何在onTap列表項中,文本字符串移動到main.dart上的TextFormField?
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(),
),
您可以使用Function
回調。 所以在你的homeview.dart
你想要添加一個Function作為屬性。
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的text屬性。
HomeView(
onStringSelected: (myDataString) {
print("The user clicked $myDataString");
},
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.