我用a收集用户输入,TextFormField当用户按下FloatingActionButton指示它们完成时,我想关闭屏幕键盘.
如何让键盘自动消失?
import 'package:flutter/material.dart';
class MyHomePage extends StatefulWidget {
MyHomePageState createState() => new MyHomePageState();
}
class MyHomePageState extends State<MyHomePage> {
TextEditingController _controller = new TextEditingController();
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(),
floatingActionButton: new FloatingActionButton(
child: new Icon(Icons.send),
onPressed: () {
setState(() {
// send message
// dismiss on screen keyboard here
_controller.clear();
});
},
),
body: new Container(
alignment: FractionalOffset.center,
padding: new EdgeInsets.all(20.0),
child: new TextFormField(
controller: _controller,
decoration: new InputDecoration(labelText: …Run Code Online (Sandbox Code Playgroud) setState()接受函数只是为了立即调用它然后请求重建有什么好处?特别是,与用户明确调用"重建"类型函数相比,有什么优势?
我想在 Flutter Android 应用程序中添加 Lottie 动画作为启动屏幕。我希望它在 Flutter 绘制第一帧之前启动,所以我正在考虑在本地执行此操作。
我在网上找到了两个例子,但它们都使用了 Flutter 的 deprecated SplashScreen:
我在构建过程中收到以下警告消息:
W/FlutterActivityAndFragmentDelegate(23263): A splash screen was
provided to Flutter, but this is deprecated. See
flutter.dev/go/android-splash-migration for migration steps.
Run Code Online (Sandbox Code Playgroud)
有没有办法制作像这个视频这样的启动动画:
尝试过但不起作用的事情:
我有一个Hero可以滚动的屏幕,所以它的一部分不在屏幕上。当我触发转换时,它似乎突然跳到的顶部,AppBar然后在转换反向时又跳回到其下方。如何强制AppBar保持在顶部Hero?
import 'package:flutter/material.dart';
void main() {
runApp(new MaterialApp(
home: new Example(),
theme: new ThemeData(primaryColor: Colors.orange),
debugShowCheckedModeBanner: false,
));
}
Widget positionHeroOverlay(BuildContext context, Widget overlay, Rect rect, Size size) {
final RelativeRect offsets = new RelativeRect.fromSize(rect, size);
return new Positioned(
top: offsets.top,
right: offsets.right,
bottom: offsets.bottom,
left: offsets.left,
child: overlay,
);
}
class LogoPageRoute extends MaterialPageRoute<Null> {
LogoPageRoute(this.colors) : super(
builder: (BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text('Flutter …Run Code Online (Sandbox Code Playgroud) 在我正在构建的Flutter应用程序中,我需要根据自定义(非Google/Facebook/Twitter/etc)授权服务器对用户进行身份验证.
为了实现这一点,用户应在网页中填写凭据.为此,可以使用WebView插件.但是,在用户进行身份验证后重定向页面时,应关闭WebView,并将代码传递给最初调用WebView的(Flutter)函数.
我已经做了一些研究,我得到了以下几个选项:
是否存在解决方案,一旦打开redirect-URI,它会自动关闭浏览器(并返回验证码)?
提前致谢!
不确定事件是否会冒泡到父窗口小部件并使用所有嵌套窗口小部件和回调触发动画.
在原始文件中,
按下BackWidget的孙子小部件(例如FlatButton),它将触发ModalDialog调用,按下该按钮将进行异步调用.翻转效果将在成功的异步调用结束时发生.
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
void main() {
runApp(new MaterialApp(
home: new Container(color: Colors.white, child: new RootWidget())));
}
class RootWidget extends StatelessWidget {
FlipWidget mainFlipWidget;
@override
Widget build(BuildContext context) {
mainFlipWidget = new FlipWidget(
frontWidget: frontWidget,
backWidget: new BackWidget(
onPressedButton: () {
_flipMainButton();
},
),
);
return new Center(child:mainFlipWidget);
}
_flipMainButton() {
mainFlipWidget.doTheFlip();
}
}
class BackWidget extends StatefulWidget {
BackWidget({
this.onPressedButton,
});
final VoidCallback onPressedButton;
Widget buttonFlipWidget;
_BackWidgetState createState() => new …Run Code Online (Sandbox Code Playgroud) 如何在flutter中创建多页面视图,其中页面对应于bottomnavigationbar中的选项卡,使得与页面对应的窗口小部件仅按需构建一次.
例如,考虑一个简单的Facebook应用程序类型的UI,带有两个选项卡 - 提要和通知,具有以下行为:
如果我使用TabBarView,它会在每次更改选项卡时重建窗口小部件,因此不会保留滚动位置.
我最近问了这个关于 Flutter 的问题。目前,答案现在给出了一个不同的错误,正如答案所述,我可能想查看这段代码。所以,我决定分叉回购并开始我的调查。我目前只想打印出该部分中的几个值来弄清楚发生了什么。看看程序认为我拥有什么,以及它认为我没有什么。我添加了几个printTrace语句,现在我想重建项目。
我去了CONTRIBUTING.md,发现了这个:
flutter 工具本身是在您
flutter第一次运行和每次运行时构建的flutter upgrade。如果您想更改并重新测试工具本身的行为,请在 git 中本地提交您的工具更改,packages/flutter_tools下次运行时将从 Dart 源重新构建该工具flutter。
我现在不想完全“改变”任何东西,只是打印出一些值并弄清楚发生了什么。问题是,进行这些调试更改会迫使我进行提交。有没有办法在不提交的情况下重建颤振工具?
我正在尝试创建一个动画,该动画将小部件“弹出”并返回到该小部件
import "package:flutter/material.dart";
class ScoreCounter extends StatefulWidget {
@override
_ScoreCounter createState() => new _ScoreCounter();
}
class _ScoreCounter extends State<ScoreCounter> with SingleTickerProviderStateMixin{
AnimationController _controller;
@override
void initState() {
super.initState();
_controller = new AnimationController(
duration: const Duration(seconds: 10),
vsync: this,
)..forward();
}
@override
build(BuildContext context){
return new AnimatedBuilder(
animation: _controller,
child: new Container(width: 200.0, height: 200.0, color: Colors.green),
builder: (BuildContext context, Widget child) {
//What to return that scales the element
},
);
}
}
Run Code Online (Sandbox Code Playgroud)
对于旋转,我将使用Transform并返回一个Matrix。但是我应该返回什么来完成缩放动画?
提前致谢