我是新手,他想知道什么是更好的方式来添加CircularProgressIndicator我的布局.例如,我的登录视图.此视图具有用户名,密码和登录按钮.我确实想要创建一个叠加布局(带Opacity),在加载时,显示我在NativeScript中使用的进度指示器,但我对如何操作感到困惑,如果这是更好的方法.例如,在NativeScript中,我在主布局中添加IndicatorActivity并将busy设置为true或false,因此它在加载时覆盖所有视图组件.
编辑:
我能够达到这个结果:
void main() {
runApp(new MyApp());
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Flutter Demo',
theme: new ThemeData(
primarySwatch: Colors.blue,
),
home: new MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => new _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> { …Run Code Online (Sandbox Code Playgroud) 嗨,我想CircularProgressIndicator在所有小部件的顶部显示我的屏幕中央。它应该像覆盖。
现在,当CircularProgressIndicator可见时,所有小部件都会向下移动一点以显示CircularProgressIndicator。我希望它应该是叠加的。有谁知道这是怎么做到的吗 ?
import 'package:flutter/material.dart';
import 'package:roomie/auth/Auth.dart';
class ForgotPasswordScreen extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return ForgotPasswordScreenState();
}
}
class ForgotPasswordScreenState extends State<ForgotPasswordScreen> {
var emailController = new TextEditingController();
var authHandler = new Auth();
bool isLoading = false;
@override
Widget build(BuildContext context) {
return new Scaffold(
body: Container(
height: MediaQuery.of(context).size.height,
decoration: BoxDecoration(
color: Colors.white,
),
child: new Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new Row(
children: <Widget>[
new Expanded(
child: …Run Code Online (Sandbox Code Playgroud) 更新 我已更改为使用小部件,并在下面将所有有状态小部件的代码。
有很多代码,我更改为使用带有Widget loadingIndicator的堆栈,但是仍然无法调用它。我的堆栈围绕着将来的响应,指示器位于底部,然后我通过单击按钮使用onPress来调用更改状态的方法,然后调用另一个进程来运行。指示器仍然没有任何反应。
class ChatServerDivided extends StatefulWidget {
ChatServerDivided({Key key, this.title, this.mychat}) : super(key: key);
static const String routeName = "/ChatServerDivided";
final ChatServerList mychat;
final String title;
@override
_ChatServerDividedState createState() => new _ChatServerDividedState();
}
class _ChatServerDividedState extends State<ChatServerDivided> {
SharedPreferences prefs;
int oid = 0;
int pid = 0;
int authlevel = 0;
bool admin = false;
int type = 0;
String msgid = '';
List chatlist;
int listcount = 0;
bool grpmsg = true;
String sender = ''; …Run Code Online (Sandbox Code Playgroud)