Flutter 扑动,可以';当第2页显示为';在第1页

Flutter 扑动,可以';当第2页显示为';在第1页,flutter,Flutter,我创建了一个PageView,其中有3个页面,每个页面都有一个按钮。 单击每个按钮应滚动到该页面 如果在第2页,上一页和下一页都可以单击 如果在第3页,则可以单击上一页 如果在第1页,下一页不可单击 更新: 当在第1页上单击这两个按钮时,以下是RawGestureDetector: 当位置在第1页时,轻触第一页按钮上的按钮。tappesturerecognizer 当位置在第1页时,点击第二页按钮上的按钮。horizontaldraggesterererecognizer vo

我创建了一个
PageView
,其中有3个页面,每个页面都有一个按钮。 单击每个按钮应滚动到该页面

  • 如果在第2页,上一页和下一页都可以单击
  • 如果在第3页,则可以单击上一页
  • 如果在第1页,下一页不可单击

更新: 当在第1页上单击这两个按钮时,以下是RawGestureDetector:

  • 当位置在第1页时,轻触第一页按钮上的按钮。
    tappesturerecognizer
  • 当位置在第1页时,点击第二页按钮上的按钮。
    horizontaldraggesterererecognizer

void main()=>runApp(MyApp());
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
回程多供应商(
供应商:[
ChangeNotifierProvider.value(
通知程序:AuthState(),
)
],
孩子:MaterialApp(
标题:Strings.logottitle,
颜色:颜色。灰色,
主页:_ScrollableSubTitleWidget(),
),
);
}
}
类_ScrollableSubTitleWidget扩展StatefulWidget{
const_ScrollableSubTitleWidget();
@凌驾
_ScrollableWidgetState createState()=>
_ScrollableWidgetState();
}
类_ScrollableWidgetState扩展状态{
PageController\u控制器;
@凌驾
void initState(){
super.initState();
_控制器=页面控制器(初始页面:0,视口分数:0.5);
debugPrint('[+]--$runtimeType:initWithScrollPosition:');
}
@凌驾
无效处置(){
_controller.dispose();
super.dispose();
}
void\u动画页面(int索引){
//if(index==\u controller.page)返回;
调试打印(
“[+]--$runtimeType:scrollPage:[${{u controller.page}=>$index]”;
_controller.animateToPage(
指数
持续时间:持续时间(毫秒:200),
曲线:Curves.easeInOut,
);
}
@凌驾
小部件构建(构建上下文){
返回容器(
颜色:颜色,黄色,
子:页面视图(
控制器:_控制器,
儿童:[
居中(
孩子:扁平按钮(
已按下:(){
_动画页面(0);
},
颜色:颜色,红色,
子项:文本(“第一个选项卡”),
),
),
居中(
孩子:扁平按钮(
已按下:(){

_animateToPage(1);//我在[viewportFraction<1.0的PageView-GestureDetector工作不正常的PageView]中发现了相同的问题,并且