簡體   English   中英

在 Future Builder 中的 flutter 中全屏顯示圓形進度條

[英]Showing Circluar Progress bar in full screen in flutter inside a Future Builder

下面的代碼顯示了我未來的構建器,它進行 API 調用並返回數據。 我希望 CircularProgressIndicator 占據設備的整個屏幕。 問題是未來的構建器在頁面視圖中,它沒有占據整個屏幕。 任何想法讓進度條全屏顯示?

提前致謝。

 Widget serverRequest(HomeViewModel vm, int position) {
return FutureBuilder(
  future: vm.fetchList(
      vm.getDataList.length, NUMBER_OF_ARTICLES_PER_PAGE),
  builder: (context, projectSnap) {
    if (projectSnap.connectionState == ConnectionState.done) {
      return ThreeArticleItem();
    } else
      return Container(child: Center(child: CircularProgressIndicator()));
  },
);

}

請看下面的代碼。 CircularProgressIndicator 顯示在屏幕中間。 在未來完成之前,用戶無法與 CircularProgressIndicator 下方的任何小部件進行交互。 IgnorePointer 小部件用於停止用戶事件,直到未來完成。

import 'package:flutter/material.dart';

final Color darkBlue = const Color.fromARGB(255, 18, 32, 47);

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  bool ignoring = true;

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData.dark().copyWith(scaffoldBackgroundColor: darkBlue),
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        appBar: AppBar(
          title: const Text("Flutter Demo"),
        ),
        body: Stack(
          children: [
            IgnorePointer(
              ignoring: ignoring,
              child: ListView(
                  children: List.generate(
                      30, (index) => ListTile(title: Text("Tile # $index")))),
            ),
            FutureBuilder<bool>(
              future: Future.delayed(const Duration(seconds: 10), () {
                setState(() => ignoring = false);
                return true;
              }),
              builder: (context, snapshot) {
                return (snapshot.hasData)
                    ? const Offstage()
                    : const Center(child: CircularProgressIndicator());
              },
            ),
          ],
        ),
      ),
    );
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM