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の学習で役立ったコンテンツ・書籍 /

 

 

 


Dart入門 – Dartの要点をつかむためのクイックツアー
タイトルとURLをコピーしました