草庐IT

keyboard-navigation

全部标签

dart - Flutter Navigation push() 和 pop(),填满栈?

在Flutter中构建应用程序,我想使用NavigationDrawer并添加了几个FlatButton。每个FlatButton都有一个onPressed()方法,我在其中执行Navigator.push()移动到所需的页面,它工作得很好。我想知道这是否随着时间的推移填满了内存,因为我总是在推送但从不从堆栈中弹出页面。始终将Navigator.pop()与Navigator.push()相继组合似乎有点奇怪,并且远离良好实践。也许有人可以告诉我正确的方法。 最佳答案 这确实会导致潜在的内存问题。为了解决这个问题,你可以弹出不需要的

使用 BLoC : The context used to push routes from the Navigator must be a descendant of a Navigator widget 的 Flutter 导航

我正在使用BLoC,我需要从PageOne导航到PageTwo并能够使用后退按钮返回,我不知道这是否是处理此问题的正确方法。当函数_navigateToPage2被调用时,我也遇到了错误。ThecontextusedtopushorpoproutesfromtheNavigatormustbethatofawidgetthatisadescendantofaNavigatorwidget.classSimpleBlocDelegateextendsBlocDelegate{@overridevoidonTransition(Transitiontransition){print(tra

navigation - Flutter:Navigator.pushReplacement/pushAndRemoveUntil kill 动画

我想知道是否有一种使用Navigator调用的方法不允许用户向后导航并保持HeroWidget的动画完好无损?我在启动画面和登录屏幕之间有一个英雄小部件图像转换,但我想阻止用户从启动画面返回。Navigator.pushAndRemoveUntil和Navigator.pushReplacement都终止动画过渡动画。 最佳答案 我的解决方案主要是因为WillPopScope污染了另一个页面并阻止了Android上应该关闭应用程序的硬件按钮:FuturepushAndReplace(StringrouteName)async{fin

flutter : Keyboard without decimal point

我需要一个只有数字(没有小数点)的numberInputKeyboard。我已经尝试使用keyboardType:TextInputType.numberWithOptions(decimal:false)但这仍然对我没有帮助 最佳答案 一个答案建议使用BlacklistingTextInputFormatter,这在您使用英语语言环境的情况下肯定有效。然而,这可能不适用于其他使用,而不是.作为十进制分隔符的语言环境。所以我建议使用WhitelistingTextInputFormatter:import"package:flutt

Flutter:在 Widget 的状态的 initState 中获取 Navigator 传递的参数

我有一个StatefulWidget,我想在命名路由中使用它。我必须按照https://flutter.dev/docs/cookbook/navigation/navigate-with-arguments中的建议传递一些我正在做的论点即Navigator.pushNamed(context,routeName,arguments:,);现在,我需要在状态的initState方法中访问这些参数,因为需要参数来订阅一些外部事件。如果我将args=ModalRoute.of(context).settings.arguments;调用放在initState中,我会得到一个运行时异常。20

keyboard - 如何让 flutter 应用程序支持电视设备?

电视设备不支持触摸操作,用户必须使用Remote。我们需要通过按左、上、右、下方向键来移动焦点,当目标控件获得焦点时,我们将按下OK按钮来响应各种按键事件。但是我找不到任何flutter接口(interface)来解决这个交互,谁能帮帮我? 最佳答案 为此有SystemChannels。我自己还没有尝试过,但看起来这应该可以满足您的需要:DartDocs-SystemChannels.keyEventAJSONBasicMessageChannelforkeyboardevents.[DartDocs-SystemChannels.

flutter - 为什么在 flutter 中调用 Navigator.of(context).pushNamed(..) 时会构建两次小部件?

下面类TestWidget中的build函数在执行导航代码时被调用两次。TestWidget在控制台上打印了两次。有谁知道为什么会这样?classTestWidgetextendsStatelessWidget{@overrideWidgetbuild(BuildContextcontext){print("TestWidget");returnnewScaffold(body:newText("TESTWIDGET"),);}}导航代码:Navigator.of(context).pushNamed(AppRoutes.fieldData);`路线定义:AppRoutes.field

Flutter navigator.push() 对象问题

当使用Navigator.push()将一个对象从一个类传递到另一个类时,即使该对象声明为非最终对象,也不会对其进行修改。主屏幕:创建一个对象(userBean)并传递给第一个屏幕第一个屏幕:显示相同的对象(userBean)值,并将相同的对象(userBean)再次传递到第二个屏幕。第二屏:尝试在第二屏修改相同的对象(userBean),并使用refreshData.then方法在第一屏打印相同的对象(userBean)。Main.dartimport'package:flutter/material.dart';import'package:flutter_app_poc1/fir

dart - 有没有办法限制 Navigation Stack 在 Flutter App 中可以维护的页面数量?

在我的Flutter应用程序中,我注意到我的导航堆栈不断增长。有没有办法限制导航堆栈内存中的页面数量(比如最多4页)?在用户触发一定数量的“后退”按钮后,是否可以最小化/关闭Flutter应用程序? 最佳答案 我不知道有任何设置允许您进行设置。因此,我将提出一种自己处理的方法。以下两个变量是顶级,即您可以将它们放在类之外的任何地方。或者,您可以使用InheritedWidget存储数据,但为简单起见,我不会这样做。intopenedRoutes=1,routePops=0;有两种方法可以捕获路由pop。您可以只捕获来自系统的那些,例

keyboard - flutter 数字键盘没有完成按钮

我在我的TextField中使用TextInputType.number。但是键盘内没有任何完成或下一步按钮。TextInputAction.done在数字键盘上不起作用。我应该为此做什么? 最佳答案 我刚刚创建了一个包,用于向当前键盘添加基本操作。你可以在这里看看:https://pub.dartlang.org/packages/keyboard_actions示例代码:import'package:flutter/material.dart';import'package:keyboard_actions/keyboard_a