Android 如何保持启动屏幕直到数据准备就绪
是否可能是spash屏幕(启动屏幕) 在应用程序所需的数据准备就绪之前是否显示 manifest.xml中是否有以下其他选项?Android 如何保持启动屏幕直到数据准备就绪,android,flutter,Android,Flutter,是否可能是spash屏幕(启动屏幕) 在应用程序所需的数据准备就绪之前是否显示 manifest.xml中是否有以下其他选项? “io.flatter.app.android.splashScreenUntillFirstFrame”经过多次尝试,我找到了一个可以优化的解决方案。 请告诉我你的意见 通常颤振始于 void main() => runApp(new MyApp()); 我通过修改代码在开始时插入了数据采集 void main() async { final Order
“io.flatter.app.android.splashScreenUntillFirstFrame”经过多次尝试,我找到了一个可以优化的解决方案。 请告诉我你的意见 通常颤振始于
void main() => runApp(new MyApp());
我通过修改代码在开始时插入了数据采集
void main() async {
final OrderedAppList aList = new OrderedAppList(); //class to get all data
var funx = (int) async => aList.getit(); //to get all of the data
var value;
value = await funx(1); //should wait for the return value
runApp(new MyApp(
qallUserApps: aList.allUserApps,
qlistLen: value, // means aList.listLen,
qplatformVersion: aList.platformVersion,
qmodel: aList.model
));
}
在MyApp中:
class MyApp extends StatelessWidget {
final List qallUserApps;
final int qlistLen;
final String qplatformVersion;
final String qmodel;
// Constructor:
const MyApp({Key key, this.qallUserApps,
this.qlistLen,
this.qplatformVersion,
this.qmodel})
: super(key: key);
@override
Widget build(BuildContext context) {
// ...
}
OrderedApplication类的代码部分:
class OrderedAppList {
int listLen= -1;
String platformVersion = "Unknown Platform";
String model = "Unknown Platform";
List allUserApps = null;
Future<int> getit() async {
try {
allUserApps = await AppsAsStateless.allApps;
listLen = allUserApps.length;
} on Exception {
allUserApps = null;
listLen = 0;
}
// ...
return listLen ;
}
class OrderedApplication{
int listLen=-1;
字符串platformVersion=“未知平台”;
String model=“未知平台”;
List allUserApps=null;
Future getit()异步{
试一试{
allUserApps=等待appsastateless.allApps;
listLen=allUserApps.length;
}例外{
allUserApps=null;
listLen=0;
}
// ...
返回列表;
}
感谢您阅读此文!它运行良好且
可以优化main中的代码:
void main() async { // async that data acquisition done before any widgets shown
final OrderedAppList aList = new OrderedAppList();
int value;
value = await aList.getit();
runApp(new MyApp(
qallUserApps: aList.allUserApps,
qlistLen: value, // = aList.listLen,
qplatformVersion: aList.platformVersion,
qmodel: aList.model
));
}
您可以使用
FutureBuilder
或StreamBuilder
进行此类操作。并在加载数据之前显示loader或splash