Android 使用按钮单击和滚动进行水平页面交换-颤振

Android 使用按钮单击和滚动进行水平页面交换-颤振,android,flutter,dart,pageviews,flutter-pageview,Android,Flutter,Dart,Pageviews,Flutter Pageview,我试图通过使用按钮和滚动来水平交换屏幕。我正试着做这样的事情。我希望你明白我想做什么 下面是我实现这一目标的代码 class ChefProfile extends StatefulWidget { @override _ChefProfileState createState() => _ChefProfileState(); } class _ChefProfileState extends State<ChefProfile> { int pageView

我试图通过使用按钮和滚动来水平交换屏幕。我正试着做这样的事情。我希望你明白我想做什么

下面是我实现这一目标的代码

class ChefProfile extends StatefulWidget {
  @override
  _ChefProfileState createState() => _ChefProfileState();
}

class _ChefProfileState extends State<ChefProfile> {
 
 int pageViewIndex;
  PageController _pgController = PageController(initialPage: 0, keepPage: true);
  List pageContent = [ChefDishes(), ChefInfo()];


  @override
  Widget build(BuildContext context) {
.
. // Some code (Irrelevant to question)
.
 Container(
                     
                      child: Row(
                        crossAxisAlignment: CrossAxisAlignment.start,

                          InkResponse(
                            onTap: () => setState(() {
                              pageViewIndex = 0;
                            }),
// --- DISH BUTTON                   
                            child: Container(
                              ...
                              child: Text(
                                  "Dishes",
                                  style: TextStyle(
                                   ...
                                ),
                              ),
                            ),
                          ),

                          Spacer(),
// --- INFO BUTTON           
                          InkResponse(
                            onTap: () => setState(() {
                              pageViewIndex = 1;
                            }),

                            child: Container(
                             ...
                                child: Text(
                                  "Info",
                                  style: TextStyle(
                                   ...
                              ),
                             ),
                            ),
                          ),
                        ],
                      ),
                    ),

                    Container(
                       ...
                      child: PageView.builder(
                        controller: _pgController,
                        itemCount: pageContent.length,
                        itemBuilder: (context, pageViewIndex) {

                          return pageContent[pageViewIndex];
                        },
                      ),
                    ),
我正在使用pageScreenIndex保存屏幕索引,并在单击任一按钮时更改其值。我是个新手。 我的屏幕现在看起来像这样。它会在交换时更改屏幕,但不会在单击按钮时更改屏幕

您可以使用animateToPage实现它

您可以使用animateToPage实现它


谢谢@Pushpendra这很有帮助谢谢@Pushpendra这很有帮助
  InkResponse(
                            onTap: () => {
                              pageViewIndex = 0;
                              controller.animateToPage(pageViewIndex,
                                                       duration: Duration(milliseconds: 100),
                                                       curve: Curves.easeIn,
                                                     ); 
                            },
// --- DISH BUTTON                   
                            child: Container(
                              ...
                              child: Text(
                                  "Dishes",
                                  style: TextStyle(
                                   ...
                                ),
                              ),
                            ),
                          ),