0

我使用 PageView 创建了 ViewPager,但是当我将它放在 SingleChildScrollView 中时它停止显示。但是当我将它放在 SingleChildScrollView 之外时它显示正常。如何在 SingleChildScrollView 中显示 PageView?

Expanded(
          flex: 8,
          child: SingleChildScrollView(
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              mainAxisSize: MainAxisSize.min,
              children: [

                Card(
                    shape: RoundedRectangleBorder(
                      borderRadius: BorderRadius.circular(5.0),
                    ),
                    margin: const EdgeInsets.fromLTRB(8.0, 16.0, 8.0, 0),
                    child: Padding(
                        padding:
                            const EdgeInsets.fromLTRB(8.0, 8.0, 8.0, 8.0),
                        child: promoPager())),
              ],
            ),
          ),
        )
Widget promoPager() {
    final PageController controller = PageController();
    return Stack(
      children: [
        PageView(
            controller: controller,
            onPageChanged: (int page) {
              setState(() {
                tabController?.index = page;
              });
            },
            children: const [
              Image(
                  image: AssetImage('assets/dubai.jpg'), fit: BoxFit.fill),
              Image(
                  image: AssetImage('assets/webcheckin.jpg'),
                  fit: BoxFit.fill),
              Image(
                  image: AssetImage('assets/maldives.gif'),
                  fit: BoxFit.fill),
              Image(
                  image: AssetImage('assets/giraffe.jpg'), fit: BoxFit.fill)
            ]),
        Positioned(
            bottom: 5,
            right: 5,
            child: TabPageSelector(
                controller: tabController,
                selectedColor: const Color(0xffea2330)))
      ],
    );

我的小部件树:- SinglechildScrollView->Column->Card->Padding->Stack->pageview

4

1 回答 1

2

提供高度以PageView解决问题。您可以在此处使用SizedBox(height:x)AspectRatio使用图像纵横比。

有关PageViewAspectRatio的更多信息

于 2021-12-28T13:12:13.543 回答