解決したい課題
ListTileのメニューをタップしたらBottomSheetが表示されるようにしたいです。
現状
======== Exception caught by gesture =============================================================== The following NoSuchMethodError was thrown while handling a gesture: The method 'findAncestorStateOfType' was called on null. Receiver: null Tried calling: findAncestorStateOfType<NavigatorState>()
コード
import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { static const String _title = 'narururu'; @override Widget build(BuildContext context) { return MaterialApp( title: _title, home: MyAppState(), ); } } class MyAppState extends StatelessWidget { BuildContext get context => null; @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: Text('narururu'), ), body: ListView( children: [ _menuItem("メニュー1", Icon(Icons.settings)), _menuItem("メニュー2", Icon(Icons.map)), _menuItem("メニュー3", Icon(Icons.room)), _menuItem("メニュー4", Icon(Icons.local_shipping)), _menuItem("メニュー5", Icon(Icons.airplanemode_active)), ] ), ), ); } Widget _menuItem(String title, Icon icon) { return GestureDetector( child:Container( padding: EdgeInsets.all(8.0), decoration: new BoxDecoration( border: new Border(bottom: BorderSide(width: 1.0, color: Colors.grey)) ), child: Row( children: <Widget>[ Container( margin: EdgeInsets.all(10.0), child:icon, ), Text( title, style: TextStyle( color:Colors.black, fontSize: 18.0 ), ), ], ) ), onTap: () { Navigator.push( context, MaterialPageRoute(builder: (context) => BottomSheetButton(), ) ); } ); } } // ignore: must_be_immutable class BottomSheetButton extends StatelessWidget { var result = showModalBottomSheet; @override Widget build(BuildContext context) { return Column( mainAxisSize: MainAxisSize.min, children: <Widget>[ ListTile( leading: Icon(Icons.music_note), title: Text('Music'), onTap: () => Navigator.of(context).pop(1), ), ListTile( leading: Icon(Icons.videocam), title: Text('Video'), onTap: () => Navigator.of(context).pop(2), ), ListTile( leading: Icon(Icons.camera), title: Text('Picture'), onTap: () => Navigator.of(context).pop(3), ), ], ); } }
調べてはいるものの一向に解決に至らず。
アドバイスが欲しいです。
どなたかよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/01 05:41