我正在学习Flutter,所以如果我的问题是一个愚蠢的问题,请不要给我扔石头:p:D
首先,您可能对以下一些图像熟悉,我仅使用github上的此应用程序来测试teory。来源:https://www.youtube.com/watch?v=sgfMdhV4HQI&t=370s
我的问题:
我正在使用综合浏览量在两个页面之间导航,一个页面带有一些可拖动的容器,另一个页面带有一些具有更多可拖动的容器,它们代表一个不同的主题。
如果我定义 scrollDirection:Axis.horizontal ,则可以正常工作。但是我想垂直拖动它。
如果我定义 scrollDirection:Axis.vertical ,我意识到,我只能在屏幕的一小部分中拖动页面。
据我所知,它可能与容器有关。
注意:我也测试了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,
)
,
答案 0 :(得分:1)
请参阅我们的评论,正如我所怀疑的那样,此问题的根源不是您的PageView
。
如果您检查自己的home_screen.dart
,则body
(第121行)中的Scaffold
是ListView
。如果将其更改为Column
,一切将开始按需工作!
那是因为ListView
消耗了所有垂直滚动,并且事件不会到达外部PageView
。