在我的演示应用程序中,我需要从服务器加载一个2 JSON文件。这两个JSON都有大量数据。我使用Future+async+await调用json,而不是使用runapp创建小部件。在体内,我试图激活一个循环进程指示器。它显示appBar及其内容,以及空的白色页面主体,4或5秒后加载实际主体中的数据。
我的问题是,我需要首先显示CircularProgressIndicator,一旦加载数据,我将调用runApp()。我该怎么做?
// MAIN
void main() async {
_isLoading = true;
// Get Currency Json
currencyData = await getCurrencyData();
// Get Weather Json
weatherData = await getWeatherData();
runApp(new MyApp());
}
// Body
body: _isLoading ?
new Center(child:
new CircularProgressIndicator(
backgroundColor: Colors.greenAccent.shade700,
)
) :
new Container(
//… actual UI
)
您需要将数据/或加载指示器放在支架内,无论您是否有数据,每次都显示支架,然后里面的内容就可以做您想做的事情了
import 'dart:async';
import 'package:flutter/material.dart';
void main() {
runApp(
MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Hello Rectangle',
home: Scaffold(
appBar: AppBar(
title: Text('Hello Rectangle'),
),
body: HelloRectangle(),
),
),
);
}
class HelloRectangle extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Center(
child: Container(
color: Colors.greenAccent,
height: 400.0,
width: 300.0,
child: Center(
child: FutureBuilder(
future: buildText(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.connectionState != ConnectionState.done) {
return CircularProgressIndicator(backgroundColor: Colors.blue);
} else {
return Text(
'Hello!',
style: TextStyle(fontSize: 40.0),
textAlign: TextAlign.center,
);
}
},
),
),
),
);
}
Future buildText() {
return new Future.delayed(
const Duration(seconds: 5), () => print('waiting'));
}
}
`
问题内容: 我只希望在应用程序生命周期中仅显示一次启动屏幕。这是我的代码: SplashScreenActivity.java: 表现: 问题是如果我按硬件HOME botton隐藏该应用程序,然后在应用程序列表中再次打开该应用程序。它将再次显示启动屏幕(而不是显示)。是否只有在应用程序“新鲜”启动时才显示启动屏幕(不在onresume()上显示)?谢谢! 问题答案: 是的,有可能。使用Share
请帮帮我!该应用程序接近完成,因为我确实运行了flutter upgrade来解决一个bug,所以我必须运行:flutter clean flutter channel master flutter upgrade flutter run 现在它不再启动了,下面的代码出现了… []Flutter(通道稳定,1.22.5,在Mac OS X 10.15.7 19H114 darwin-x64,现场显
我试着从中进行更改,但它得到了更改,但Flutter提供了一种方法来实现这一点吗?
问题内容: 当我使用命令创建应用程序时,flutter徽标用作两个平台的应用程序图标。 如果我想更改应用程序图标,是否应同时进入两个平台目录并在其中替换图像?,分别用我指的是iOS和Android的平台目录来表示 。 还是可以将图像定义为Flutter Asset并且以某种方式生成图标? 问题答案: Flutter启动器图标旨在帮助快速生成适用于Android和iOS的启动器图标:https :
我已经尝试过几次升级flutter,但似乎也没有任何问题: 我最近换了笔记本电脑,并在这个新的笔记本上查看了我的代码的git存储库。有一些问题,但我最终解决了这些问题。唯一的区别是项目名称现在只是,而包名称是-但我认为这不会造成任何问题。 我的猜测是,问题出在我的中的某个地方:
问题内容: 我尝试使用范围类型APPLICATION和带有@ Create,@ Beg的方法来注释类,但这似乎不起作用。 我想要的是在应用程序启动时立即启动无限循环。 问题答案: 如果希望在初始化后立即执行方法,则可以使用以下注释: