Я очень новичок, чтобы трепетать, и я пытаюсь научиться создавать представления.Я попытался создать отдельный файл представления или виджета, если это так называется во флаттере, и просто вызвать его из main.dart.
У меня есть отдельный виджет, содержащий этот код
class PageEntryWidgetMain extends StatefulWidget {
final PageViewEntryMain pageViewEntryMain;
const PageEntryWidgetMain({Key key, this.pageViewEntryMain})
: super(key: key);
@override
State<StatefulWidget> createState() {
return _PageEntryWidgetMainState();
}
}
class _PageEntryWidgetMainState extends State<PageEntryWidgetMain> {
@override
Widget build(BuildContext context) {
return Container(
child: Row(
children: <Widget>[
Text(widget.pageViewEntryMain.title)
],
),
);
}
}
и я пытаюсь показать это, используя пейджер вида со следующим кодом
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
PageView.builder(
itemBuilder: (context, position) {
PageEntryWidgetMain(
pageViewEntryMain: pages[position],
);
},
itemCount: pages.length,
scrollDirection: Axis.horizontal,
)
],
),
),
);
, но он выдаёт мне следующие ошибки
- Задан горизонтальный видовой экраннеограниченная высота.
- Окна просмотра расширяются по поперечной оси, чтобы заполнить их контейнер и ограничить их дочерние элементы, чтобы соответствовать их экстенту по поперечной оси.В этом случае горизонтальному окну просмотра было предоставлено неограниченное количество вертикального пространства для расширения.
Я немного смущен тем, на что он на самом деле жалуется.Я могу отобразить только одно представление, заменив PageView.builder этим кодом
PageEntryWidgetMain(pageViewEntryMain: pages[0])
Так что я считаю, что отдельный виджет сам по себе не имеет проблемы.Вероятно, речь идет о том, как я пытаюсь использовать ViewPager, который выдает мне ошибки.
Я искал реализации PageView, но я не видел ни одного, у которого на самом деле было бы отдельное представление для вызова только для отображения.Мне нужно изучить это таким образом, чтобы я мог разделять представления, а не просто записывать все в один файл.