diff --git a/lib/const/page_item_const.dart b/lib/const/page_item_const.dart index 426c270..68173c6 100644 --- a/lib/const/page_item_const.dart +++ b/lib/const/page_item_const.dart @@ -257,4 +257,14 @@ const PAGE_ITEMS = [ "img": PageImage.FLUTTER_OPEN, "click": PageName.INTER_DRAG, }, + { + "title": PageName.INTER_GESTURE, + "img": PageImage.FLUTTER_OPEN, + "click": PageName.INTER_GESTURE, + }, + { + "title": PageName.INTER_DISMISSIBLE, + "img": PageImage.FLUTTER_OPEN, + "click": PageName.INTER_DISMISSIBLE, + }, ]; diff --git a/lib/const/page_name_const.dart b/lib/const/page_name_const.dart index 8486b6c..cd1bfe4 100644 --- a/lib/const/page_name_const.dart +++ b/lib/const/page_name_const.dart @@ -56,4 +56,6 @@ class PageName { static const ANIM_PYH_MODEL = "PyhModel"; static const ANIM_OPACITY = "OpacityPage"; static const INTER_DRAG = "Draggable"; + static const INTER_GESTURE = "Gesture"; + static const INTER_DISMISSIBLE = "Dismissible"; } diff --git a/lib/main.dart b/lib/main.dart index b79cda8..1312d7c 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -70,6 +70,8 @@ class FlutterOpenApp extends StatelessWidget { PageName.ANIM_PYH_MODEL: (context) => PyhModelPage(), PageName.ANIM_OPACITY: (context) => AnimOpacityPage(), PageName.INTER_DRAG: (context) => DraggablePage(), + PageName.INTER_GESTURE: (context) => GesturePage(), + PageName.INTER_DISMISSIBLE: (context) => DismissiblePage(), }, ); } diff --git a/lib/page/interation/DismissiblePage.dart b/lib/page/interation/DismissiblePage.dart new file mode 100644 index 0000000..c7fbbe2 --- /dev/null +++ b/lib/page/interation/DismissiblePage.dart @@ -0,0 +1,50 @@ +/// +/// Created by NieBin on 2019/6/12 +/// Github: https://github.com/nb312 +/// Email: niebin312@gmail.com +/// +import "package:flutter/material.dart"; +import "package:flutter_widgets/const/_const.dart"; + +class DismissiblePage extends StatefulWidget { + @override + _DismissibleState createState() => _DismissibleState(); +} + +class _DismissibleState extends State { + var _key = GlobalKey(); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text(PageName.INTER_DISMISSIBLE), + ), + body: Dismissible( + key: _key, + child: Container( + constraints: BoxConstraints.expand(height: 100), + alignment: Alignment.center, + child: Text( + "Hello", + style: TextStyle(color: TEXT_BLACK, fontSize: 20), + ), + color: BLUE, + ), + background: Container( + color: RED_LIGHT, + constraints: BoxConstraints.expand(height: 100, width: 40), + alignment: Alignment.center, + child: Text( + "Remove", + style: TextStyle(color: TEXT_BLACK_LIGHT, fontSize: 10), + ), + ), + direction: DismissDirection.startToEnd, + onDismissed: (direction) { + print("Dissmiss"); + _key.currentState.dispose(); + }), + ); + } +} diff --git a/lib/page/interation/GesturePage.dart b/lib/page/interation/GesturePage.dart new file mode 100644 index 0000000..43bbaf9 --- /dev/null +++ b/lib/page/interation/GesturePage.dart @@ -0,0 +1,38 @@ +/// +/// Created by NieBin on 2019/6/12 +/// Github: https://github.com/nb312 +/// Email: niebin312@gmail.com + +import "package:flutter/material.dart"; +import "package:flutter_widgets/const/_const.dart"; + +class GesturePage extends StatefulWidget { + @override + _GestureState createState() => _GestureState(); +} + +class _GestureState extends State { + Widget _gesture(context) => GestureDetector( + child: Text("You can tab me then look the log."), + onTap: () { + print("Hello world"); + Scaffold.of(context).showSnackBar( + SnackBar( + content: Text("You have click me."), + ), + ); + }, + ); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text(PageName.INTER_GESTURE), + ), + body: Builder( + builder: (context) => _gesture(context), + ), + ); + } +} diff --git a/lib/page/interation/_interaction.dart b/lib/page/interation/_interaction.dart index 4926046..d28e6a3 100644 --- a/lib/page/interation/_interaction.dart +++ b/lib/page/interation/_interaction.dart @@ -3,4 +3,6 @@ /// Github: https://github.com/nb312 /// Email: niebin312@gmail.com /// -export "DraggablePage.dart"; \ No newline at end of file +export "DraggablePage.dart"; +export "GesturePage.dart"; +export "DismissiblePage.dart";