我正在使用 layoutbuilder 开发一个应用程序,当用户从纵向模式变为横向模式时,我想要显示的应用程序的不同视觉效果应该显示微调器,并且在 2 秒后微调器应该消失。
我得到了我使用过的功能( WidgetsBinding.instance.addPostFrameCallback((_) { )),但是每次我改变方向时,加载微调器都会出现,然后在它消失后我的屏幕会闪烁并且不会停止闪烁或闪烁
我理解原因是加载微调器正在显示,然后我的其他小部件正在重建,但我有一个格式,我需要全部成为有状态小部件,除非有人有其他想法?
- 用户将纵向更改为横向
- 微调器显示 2 秒
- 用户以横向方式看到屏幕。
Loadingshimmer 是加载器 singlechildscrollview 是横向模式的类...
bool loading = false;
child: LayoutBuilder(builder: (context, constraints) {
if (constraints.maxWidth > 600 && constraints.maxHeight < 1000) {
WidgetsBinding.instance.addPostFrameCallback((_) {
setState((){
loading = true;
});
});
Timer(Duration(seconds: 1), () {
setState(() {
loading = false;
});
});
// child: OrientationBuilder(
// builder: (BuildContext context, Orientation orientation) {
// if (orientation == Orientation.portrait) {
// (constraints.maxWidth > 600) {
print(height);
print(width);
return loading
? LoadingShimmer()
: SingleChildScrollView(