Androidでもスワイプで戻る処理を実現したい

Dart

1import 'package:flutter/material.dart';2import 'package:cupertino_back_gesture/cupertino_back_gesture.dart';3 4void main() {5 runApp(MyApp());6}7 8class MyApp extends StatelessWidget {9 const MyApp({super.key});10 11 12 Widget build(BuildContext context) {13 return BackGestureWidthTheme(14 backGestureWidth: BackGestureWidth.fraction(0.5),15 child: MaterialApp(16 theme: ThemeData(17 pageTransitionsTheme: const PageTransitionsTheme(18 builders: {19 TargetPlatform.android:20 CupertinoPageTransitionsBuilderCustomBackGestureWidth(),21 TargetPlatform.iOS:22 CupertinoPageTransitionsBuilderCustomBackGestureWidth(),23 },24 ),25 ),26 home: DefaultTabController(27 length: 3,28 child: Scaffold(29 appBar: AppBar(30 title: const Text('Pages'),31 bottom: const TabBar(32 tabs: [33 Tab(text: 'TabA'),34 Tab(text: 'TabB'),35 Tab(text: 'TabC'),36 ],37 ),38 ),39 body: TabBarView(40 children: [41 Navigator(42 onGenerateRoute: (_) => MaterialPageRoute(43 builder: (_) => Page1(),44 ),45 ),46 const Center(47 child: Text('TabB'),48 ),49 const Center(50 child: Text('TabC'),51 ),52 ],53 ),54 ),55 ),56 ),57 );58 }59}60 61class Page1 extends StatelessWidget {62 const Page1({super.key});63 64 65 Widget build(BuildContext context) {66 return Scaffold(67 body: Center(68 child: Column(69 mainAxisAlignment: MainAxisAlignment.center,70 children: [71 const Text('Page1'),72 const SizedBox(height: 10),73 ElevatedButton(74 onPressed: () {75 Navigator.of(context).push(76 MaterialPageRoute(77 builder: (context) => Page2(),78 ),79 );80 },81 child: const Text('Go to Page2'),82 ),83 ],84 ),85 ),86 );87 }88}89 90class Page2 extends StatelessWidget {91 const Page2({super.key});92 93 94 Widget build(BuildContext context) {95 return Scaffold(96 appBar: AppBar(97 title: const Text('Page2'),98 ),99 body: const Center(100 child: Text('Page2'),101 ),102 );103 }104}

コメントを投稿

0 コメント