gpt4 book ai didi

android - 使用按钮单击和滚动进行水平页面交换 - Flutter

转载 作者:行者123 更新时间:2023-12-03 03:14:32 24 4
gpt4 key购买 nike

我试图通过使用两个按钮和滚动来水平交换屏幕。我正在努力实现这样的目标。我希望你明白我在做什么。
enter image description here
下面是我的代码来实现这一点

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”保存屏幕索引并在单击任一按钮时更改它的值。 我是 flutter 的新手。
我的屏幕现在看起来像这样。它会在交换时更改屏幕,但不会在单击按钮时更改
enter image description here

最佳答案

您可以使用 animateToPage 来实现它.

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

关于android - 使用按钮单击和滚动进行水平页面交换 - Flutter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62792875/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com