滑动即可更改路线

时间:2018-08-08 21:16:35

标签: dart flutter

我要更改一个窗口,只需向左滑动即可,我有2个窗口,当用户向右滑动时,我想更改路线。

我正在使用命名路由。

void main() => runApp(new HeatMapApp());

class HeatMapApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
        title: 'HeatMap',
        initialRoute: '/',
        routes: {
          '/': (context) => new Main(),
          '/home': (context) => new Home()
        },
        theme: new ThemeData(
            primaryColor: Colors.black
        )
    );
  }
}

这是我在应用程序中的代码,主文件现在没有太多数据,我想知道滑动事件以重定向到“ home”路径。

Main.dart

class Main extends StatelessWidget {
  final bool _isLoggedIn = true;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: _isLoggedIn ? AppBar (
            title: Text('Logged In')
        ) : null,
        body: Center(
          child: Text('Hello World!')
        )
    );
  }

}

1 个答案:

答案 0 :(得分:3)

我认为Dismissible小部件可完美满足您的需求

  class Main extends StatelessWidget {
    final bool _isLoggedIn = true;

    _nextPage(BuildContext context) async {
      Navigator.of(context).pushReplacementNamed("/home");
    }

    @override
    Widget build(BuildContext context) {
      return Dismissible(
          key: new ValueKey("dismiss_key"),
          direction: DismissDirection.endToStart,
          child: Scaffold(
              appBar: _isLoggedIn ? AppBar(title: Text('Logged In')) : null,
              body: Center(child: Text('Hello World!'))),
          onDismissed: (direction) {
            if (direction == DismissDirection.endToStart) {
              _nextPage(context);
            }
          });
    }
  }