Flutter: Macのデスクトップアプリだと、file_pickerの動作中に、アプリ画面を触れてしまう

※当サイトは、アフィリエイト広告を利用しています

結論:ファイル選択終了までの間、閉じれないダイアログを表示する

2022/3/12 Flutter エラー・バグ日記

 

FlutterのiOS・Androidアプリを、Macのデスクトップ用アプリに転用しようとすると、色々調整が必要になるが、コレは盲点だったのでメモ。。

 

本記事はライトな日記思考で書いているので、詳細説明はしておらず、基本、テキストのみで画像とかはあまり載せておりません。。m(_ _)m

解説記事ではないため、解決していない内容や、その時々の間違った解釈を述べてしまっている可能性が大いにありますので、何卒、ご了承ください。

 

Macのデスクトップアプリで、file_pickerパッケージを試したところ、きちんとPC内のファイル選択ダイアログが表示され、問題なく動作するので、感動していた。

 

 

しかし、PCの場合、アプリの画面が開かれたままなので、ファイルの選択中に、アプリの画面を触れてしまうという問題が発覚。

 

スマホだと、ファイル選択画面に切り替わるので、ファイルを選択またはキャンセルしない限り、元のアプリ画面には戻れない。そのため、ファイルの選択中に、アプリ画面を操作される心配はなかった。

 

デスクトップ用に、うまく制御してくれるメソッドが無いか、ソースコードを見てみるも、よく分からず。。

 

結局、OS判定の条件分岐を入れ、Macのデスクトップアプリの場合には、file_pickerの「pickFiles」メソッドを発動したら、ファイル選択が終了するまで(もしくはキャンセルされるまで)、ローディングダイアログを表示(「barrierDismissible」がfalseの「showGeneralDialog」を起動し、ファイル選択中であることを示すメッセージと「CircularProgressIndicator」を表示)し、アプリの画面を触れないようにした。

 

やはりスマホとPC(デスクトップ)とでは、必要となる対応に違いがある。。

 

とは言え、Flutterには、OS(プラットフォーム)を判定して条件分岐できるプロパティ(Platform.・・・)が用意されているので、部分的にコードを使い分けるだけで、ほぼ同一のソースコードのまま、複数OSに対応できる点は、非常に便利だと改めて感じる。

 

リリースしたアプリ(全てFlutterで開発)

 

個人アプリ開発で役立ったもの

おすすめの学習教材

超初心者向けでオススメな元Udemyの講座/

 

 \キャンペーン時を狙えば安価で網羅的な内容が学べる(日本語訳あり)/

 

\Gitの基礎について無料で学べる/

 

おすすめの学習書籍

実用的image_pickerに関してかなり助けられた/

 

Dartの基礎文法を素早くインプットできる/


Dart入門 - Dartの要点をつかむためのクイックツアー

タイトルとURLをコピーしました