如何解决单击建议时转发到下一页 示例
我在我的 Flutter 应用程序中使用了自动完成文本字段。在文本字段中输入文本时,用户会收到建议(通过 JSON)。然后用户应该点击一个建议并且应该被转发到“SecondPage”。同时选中播放器的国家也应该传递给“SecondPage”。
在 itemSubmitted 部分中,我尝试整合我的计划,但它不起作用。 “第二页”没有启动。你能在这里帮忙吗?
这是我的代码:
class ScreenDivider(Widget):
score = NumericProperty(0)
def __init__(self):
super(ScreenDivider,self).__init__() # call super __init__()
self.score = 12
解决方法
我相信缺少的是 Navigator.push
调用将 push SecondPage
到路由堆栈上。 MaterialPageRoute
不会将自己置于页面/路由堆栈中。
示例
当您关注文本字段并按 Enter 键时,它将导航到 SecondPage
,其值为 TextFormField
。
import 'package:flutter/material.dart';
class NavTextFieldPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Nav TextField Submit'),),body: NavTextfieldExample(),);
}
}
class NavTextfieldExample extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,children: [
TextFormField(
decoration: InputDecoration(
labelText: 'Navigate to next page',initialValue: 'Japan',onFieldSubmitted: (item) {
/// Using default Navigator from Scaffold,*push* onto stack SecondPage
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => SecondPage(item)));
},)
],);
}
}
class SecondPage extends StatelessWidget {
final String country;
SecondPage(this.country);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Nav Second Page'),body: Center(
child: Text('Country: $country'),);
}
}
上面的关键部分是:
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => SecondPage(item)));
它使用 Navigator
对象将路由推送到你的路由堆栈(即页面)上。
请尝试以下操作:
- 。创建一个 SecondPage.dart
- 。放入无状态或有状态的 Widget
- 。在你的 materialApp() 中创建一条路线
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。