teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

追記

2020/07/10 06:18

投稿

tepci
tepci

スコア419

answer CHANGED
@@ -27,7 +27,7 @@
27
27
 
28
28
  ```
29
29
 
30
- スピナーをオーバーレイ表示にしたい場合はこっちが向いている?
30
+ スピナーを[オーバーレイ表示](https://pub.dev/packages/loading_overlay)にしたい場合はこっちが向いている?
31
31
 
32
32
  (2)は、`FutureBuilder`で`ssnapshot.hasData`が`false`の時はスピナー表示、`true`になったらスピナーを消すという風にやればいいと思います。
33
33
 

2

追記

2020/07/10 06:18

投稿

tepci
tepci

スコア419

answer CHANGED
@@ -1,6 +1,32 @@
1
1
  (1)も(2)も実現可能です。
2
2
 
3
3
  (1)に関しては「ページ遷移で完了」ではなく、「ファイル作成で完了」という考え方にシフトしたほうがやりやすいと思います。ボタン押下時、ファイルダウンロード完了時に`setState`でスピナー表示/非表示を切り替えるなど。
4
+
5
+ イメージ↓
6
+ 動画選択時の処理
7
+ ```Dart
8
+ bool _loading = false;
9
+
10
+ void _downloadVideo() async {
11
+ // スピナー表示
12
+ setState(() => _loading = true);
13
+ _file = await xxxxxxxxxxxx().then((data) {
14
+ // ダウンロード終了後
15
+ // スピナー非表示
16
+ setState(() => _loading = false);
17
+ // 画面遷移
18
+ Navigator.xxxxxxxxxxxxxxxxxxxxxxxxxx;
19
+ });
20
+ }
21
+
22
+ ...
23
+ child: _loading
24
+ ? CircularProgressIndicator() // _loadingがtrueならスピナー表示
25
+ : VideoListView(), // falseなら一覧表示
26
+ ...
27
+
28
+ ```
29
+
4
30
  スピナーをオーバーレイ表示にしたい場合はこっちが向いている?
5
31
 
6
32
  (2)は、`FutureBuilder`で`ssnapshot.hasData`が`false`の時はスピナー表示、`true`になったらスピナーを消すという風にやればいいと思います。

1

追記

2020/07/10 06:17

投稿

tepci
tepci

スコア419

answer CHANGED
@@ -1,6 +1,7 @@
1
1
  (1)も(2)も実現可能です。
2
2
 
3
3
  (1)に関しては「ページ遷移で完了」ではなく、「ファイル作成で完了」という考え方にシフトしたほうがやりやすいと思います。ボタン押下時、ファイルダウンロード完了時に`setState`でスピナー表示/非表示を切り替えるなど。
4
+ スピナーをオーバーレイ表示にしたい場合はこっちが向いている?
4
5
 
5
6
  (2)は、`FutureBuilder`で`ssnapshot.hasData`が`false`の時はスピナー表示、`true`になったらスピナーを消すという風にやればいいと思います。
6
7