[解決済み] Flutter でプログラム的にモードなボトムシートを閉じる
2022-12-28 21:16:02
質問
BottomSheetを表示するために
showModalBottomSheet<Null>()
で表示し、GestureDetectorで複数のウィジェットの内部に表示しています。
BottomSheetの外側をタッチしたときだけでなく、内側のGestureDetectorのonTapイベントの後にもBottomSheetが閉じられるようにしたいのですが、GestureDetectorはタッチイベントを転送しないようです。しかし、GestureDetectorはタッチイベントを転送していないようです。
そこで質問ですが、プログラムで ModalBottomSheet の閉鎖をトリガーする方法、または GestureDetector にタッチ イベントを転送するよう指示する方法はありますか。
更新しました(2018-04-12)。
理解を深めるためにコードスニペットを追記します。問題は、"アイテム1"や"アイテム2"をタップしても、ModalBottomSheetが閉じないことです。
showModalBottomSheet<Null>(context: context, builder: (BuildContext context)
{
return new SingleChildScrollView(child:
new Column(crossAxisAlignment: CrossAxisAlignment.stretch, children: [
new GestureDetector(onTap: () { doSomething(); }, child:
new Text("Item 1")
),
new GestureDetector(onTap: () { doSomething(); }, child:
new Text("Item 2")
),
]),
);
});
どのように解決するのですか?
ModalBottomSheetをプログラムで閉じるには、次のようにします。
Navigator.pop(context);
GestureDetectorのonTapコールバック関数の中で、このpop関数を呼び出すだけです。
showModalBottomSheet(context: context, builder: (BuildContext context)
{
return SingleChildScrollView(child:
Column(crossAxisAlignment: CrossAxisAlignment.stretch, children: [
GestureDetector(onTap: () {
Navigator.pop(context);
doSomething();
}, child:
Text("Item 1")
),
GestureDetector(onTap: () {
Navigator.pop(context);
doSomething();
}, child:
Text("Item 2")
),
]),
);
});
関連
-
[解決済み] Flutterのデバッグバナーを削除するにはどうしたらいいですか?
-
[解決済み] Flutterで16進数の色文字列を使用するにはどうすればよいですか?
-
[解決済み] Flutterで丸みを帯びたボタン/border-radius付きボタンを作成する
-
[解決済み] Flutterでウィジェットにボーダーを追加するには?
-
[解決済み】Flutterでアプリケーションランチャーのアイコンを変更するには?
-
[解決済み】Flutterでウィジェットをプログラム的に表示・非表示にする方法
-
[解決済み】flutterでパッケージ名を変更する方法は?
-
[解決済み] "extends" 対 "implements" 対 "with" (拡張する)。
-
[解決済み] Flutter SVG レンダリング
-
[解決済み] Flutter (Dart) アプリにタップでクリップボードにコピーする機能を追加するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] FlutterのBuildキャッシュをクリアする方法は?
-
[解決済み】Dartで日付をフォーマットする方法とは?
-
[解決済み] "extends" 対 "implements" 対 "with" (拡張する)。
-
[解決済み] ローカルフラッターパッケージを別のフラッターアプリケーションで使用するには?
-
[解決済み] DartでListを等しく比較するにはどうしたらいいですか?
-
[解決済み] ステートレスウィジェットクラスのKeyとは何ですか?
-
[解決済み] POSTリクエスト中にCERTIFICATE_VERIFY_FAILEDエラーが発生した場合、どのように解決しますか?
-
[解決済み] スクロールグローを消すには?
-
[解決済み] textFieldのアンダーラインの色を変更するには?
-
[解決済み] 文字列から列挙