Flutter无法垂直拖动综合浏览量

时间:2019-10-22 00:32:58

标签: flutter dart

我正在学习Flutter,所以如果我的问题是一个愚蠢的问题,请不要给我扔石头:p:D

首先,您可能对以下一些图像熟悉,我仅使用github上的此应用程序来测试teory。来源:https://www.youtube.com/watch?v=sgfMdhV4HQI&t=370s

我的问题:

我正在使用综合浏览量在两个页面之间导航,一个页面带有一些可拖动的容器,另一个页面带有一些具有更多可拖动的容器,它们代表一个不同的主题。

如果我定义 scrollDirection:Axis.horizo​​ntal ,则可以正常工作。但是我想垂直拖动它。

enter image description here

如果我定义 scrollDirection:Axis.vertical ,我意识到,我只能在屏幕的一小部分中拖动页面。

enter image description here

据我所知,它可能与容器有关。

  • 如何在触摸屏幕上的任意位置时垂直拖动?

注意:我也测试了SliverToBoxAdapter类,但效果不佳。

我的git repro https://github.com/engineerRFR/flutter-mytest

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Netflix UI Redesign',
      debugShowCheckedModeBanner: false,
      home: PageView(
          children: <Widget>[
            Container(
              color: Colors.pink,
              child: HomeScreen(),
            ),
            Container(
              color: Colors.cyan,
              child: photoGallery(),
            ),
            Container(
              color: Colors.deepPurple,
            ),
          ],
        scrollDirection: Axis.horizontal,
        onPageChanged: (num) {
          print("Page number : " + num.toString());
        },
      ),
    );
  }
}


 photoGallery (){
  return PageView(
    scrollDirection: Axis.vertical,
    children: <Widget>[
      Container(
        color: Colors.amber,

      )

1 个答案:

答案 0 :(得分:1)

请参阅我们的评论,正如我所怀疑的那样,此问题的根源不是您的PageView

如果您检查自己的home_screen.dart,则body(第121行)中的ScaffoldListView。如果将其更改为Column,一切将开始按需工作!

那是因为ListView消耗了所有垂直滚动,并且事件不会到达外部PageView