Flutter 有没有办法模仿颤振中的水平阻力?

Flutter 有没有办法模仿颤振中的水平阻力?,flutter,Flutter,当用户单击某个按钮时,我希望该按钮发送一个向右滑动事件,以便触发一个切换到不同页面的选项卡。没有TabController或Navigator或PageView 基本上,我有一个在页面之间导航的TabController,但我还想添加上述功能,用户可以从一个完全独立的非制表小部件触发制表符更改 例如: 这似乎就是您要寻找的: PageView( controller: _pageController, children: <Widget>[ Column(

当用户单击某个按钮时,我希望该按钮发送一个向右滑动事件,以便触发一个切换到不同页面的选项卡。没有
TabController
Navigator
PageView

基本上,我有一个在页面之间导航的
TabController
,但我还想添加上述功能,用户可以从一个完全独立的非制表小部件触发制表符更改

例如:


这似乎就是您要寻找的:

PageView(
  controller: _pageController,
  children: <Widget>[
    Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        Text('Page 1'),
        RaisedButton(
          onPressed: () {
            _pageController.nextPage(
              duration: Duration(milliseconds: 200),
              curve: Curves.easeInOut
            );
          },
          child: Text('Go to Page 2'),
        )
      ],
    ),
    Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        Text('Page 2'),
        RaisedButton(
          onPressed: () {
            _pageController.previousPage(
              duration: Duration(milliseconds: 200),
              curve: Curves.easeInOut
            );
          },
          child: Text('Go to Page 1'),
        )
      ],
    ),
  ],
),
PageView(
控制器:_pageController,
儿童:[
纵队(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
正文(“第1页”),
升起的按钮(
已按下:(){
_pageController.nextPage(
持续时间:持续时间(毫秒:200),
曲线:Curves.easeInOut
);
},
子项:文本(“转到第2页”),
)
],
),
纵队(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
正文(“第2页”),
升起的按钮(
已按下:(){
_pageController.previousPage(
持续时间:持续时间(毫秒:200),
曲线:Curves.easeInOut
);
},
子项:文本(“转到第1页”),
)
],
),
],
),

“这样它会触发一个标签切换到另一个页面。有没有办法不用TabController或Navigator”那么你到底想做什么?这就是小部件。你可以将控制器传递给它的子部件,然后从那里操作它,或者传递允许你这样做的方法。我想我知道你的建议。问题是触发器小部件页面不是选项卡控制器页面之一。所以在这种情况下,我必须将控制器传递给另一个小部件,我认为它可以通过流来完成?!但这似乎太复杂了。我不知道你的应用程序的结构,但应该有一种方法可以传递你想要使用的方法。谢谢你的回复。我为问题补充了更多细节。不幸的是,在我的例子中,页面视图没有帮助。
class Sample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ListTile(
      title: Text('Connect a service'),
      onTap: () => send HorizontalDragGesture event,
    );
  }
}
PageView(
  controller: _pageController,
  children: <Widget>[
    Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        Text('Page 1'),
        RaisedButton(
          onPressed: () {
            _pageController.nextPage(
              duration: Duration(milliseconds: 200),
              curve: Curves.easeInOut
            );
          },
          child: Text('Go to Page 2'),
        )
      ],
    ),
    Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        Text('Page 2'),
        RaisedButton(
          onPressed: () {
            _pageController.previousPage(
              duration: Duration(milliseconds: 200),
              curve: Curves.easeInOut
            );
          },
          child: Text('Go to Page 1'),
        )
      ],
    ),
  ],
),