Я пытаюсь вызвать новую страницу при нажатии элемента строки в представлении списка, я очень плохо знаком с флаттером
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(title: "My First Flutter App", home: new Home());
}
}
class Home extends StatelessWidget {
@override
Widget build(BuildContext context) {
// TODO: implement build
return new Scaffold(
appBar: AppBar(
title: Text("Hello"),
backgroundColor: Colors.black,
),
body: WordPairState()._buildSugg(context));
}
}
class WordPairState extends State<RandomWordPair> {
final _suggetions = <WordPair>[];
final _bigText = const TextStyle(fontSize: 16);
@override
Widget build(BuildContext context) {
final _wordPair = WordPair.random();
// TODO: implement build
return Text(_wordPair.asPascalCase);
}
Widget _buildSugg(BuildContext ctx) {
return ListView.builder(
padding: const EdgeInsets.all(10),
itemBuilder: (context, i) {
if (i.isOdd) return Divider();
final count = i ~/ 2;
if (count >= _suggetions.length) {
_suggetions.addAll(generateWordPairs().take(10));
}
return _buildRow(_suggetions[count], count, ctx);
});
}
Widget _buildRow(WordPair wp, final count, BuildContext ctx) {
return ListTile(
subtitle: Text("List Sub title " + wp.toString()),
title: Text(
wp.asPascalCase,
style: _bigText,
),
onTap: () {
Route route = MaterialPageRoute(builder: (context) => SecondRoute());
Navigator.push(context, route);
});
}
Я получаю сообщение об ошибке следующим образом, может быть, это из-за неправильного контекста, но я не знаю, какой контекст мне следует передать:
══╡ ИСКЛЮЧЕНИЕ ЗАДЕРЖАНО ЖЕСТОМ════════════════════════════ I / flutter (15113): Следующая ошибка NoSuchMethodError была выдана при обработке жеста: I / flutter (15113): метод 'ancestorStateOfType' был вызван для нуля.I / flutter (15113): получатель: null I / flutter (15113): пробный вызов: ancestorStateOfType (экземпляр 'TypeMatcher') I / flutter (15113): I / flutter (15113): когда было сгенерировано исключение, это былостек: I / flutter (15113): # 0 Object.noSuchMethod (dart: core / runtime / libobject_patch.dart: 50: 5) I / flutter (15113): # 1 Navigator.of (пакет: flutter / src / widgets/navigator.dart:1376:19) I / flutter (15113): # 2 WordPairState._buildRow.(пакет: flutter_app / main.dart: 99: 19) I / флаттер (15113): # 3 _InkResponseState._handleTap (пакет: флаттер / src / material / ink_well.dart: 513: 14) I / флаттер (15113): #4 _InkResponseState.build.(пакет: flutter / src / material / ink_well.dart: 568: 30) I / flutter (15113): # 5 GestureRecognizer.invokeCallback (пакет: flutter / src / gestures /ognizer.dart: 120: 24) I / flutter (15113): # 6 TapGestureRecognizer._checkUp (пакет: flutter / src / gestures / tap.dart: 242: 9) I / flutter (15113): # 7 TapGestureRecognizer.acceptGesture (пакет: flutter / src / gestures / tap.dart:204: 7) I / flutter (15113): # 8 GestureArenaManager.sweep (пакет: flutter / src / gestures / arena.dart: 156: 27) I / flutter (15113): # 9 _WidgetsFlutterBinding & BindingBase & GindingureBinding.handleEter (пакет:src / gestures / binding.dart: 218: 20) I / flutter (15113): # 10 _WidgetsFlutterBinding & BindingBase & GestureBinding.dispatchEvent (пакет: flutter / src / gestures / binding.dart: 192: 22) I / флаттер (15113): # 11_WidgetsFlutterBinding & BindingBase & GestureBinding.s / binding.dart: 101: 7) I / flutter (15113): # 13 _WidgetsFlutterBinding & BindingBase & GestureBinding._handlePointerDataPacket (пакет: flutter / src / gestures / binding.dart: 85: 7) I / флаттер (15113): # 17 _inkedart: ui / hooks.dart: 223: 10) I / флаттер (15113): # 18 _dispatchPointerDataPacket (dart: ui / hooks.dart: 144: 5) I / флаттер (15113): (исключено 3 кадра из пакета dart:асинхронный) I / флаттер (15113): I / флаттер (15113): обработчик: onTap