Showing
1 changed file
with
19 additions
and
7 deletions
@@ -3,20 +3,32 @@ import 'package:flutter/widgets.dart'; | @@ -3,20 +3,32 @@ import 'package:flutter/widgets.dart'; | ||
3 | import '../../../get.dart'; | 3 | import '../../../get.dart'; |
4 | import 'get_view.dart'; | 4 | import 'get_view.dart'; |
5 | 5 | ||
6 | -abstract class GetResponsive<T> extends GetView<T> { | 6 | +abstract class _GetResponsive<T> extends GetView<T> { |
7 | final ResponsiveScreen screen; | 7 | final ResponsiveScreen screen; |
8 | - GetResponsive(ResponsiveScreenSettings settings, {Key key}) | 8 | + _GetResponsive(ResponsiveScreenSettings settings, {Key key}) |
9 | : screen = ResponsiveScreen(settings), | 9 | : screen = ResponsiveScreen(settings), |
10 | super(key: key); | 10 | super(key: key); |
11 | 11 | ||
12 | Widget builder(); | 12 | Widget builder(); |
13 | - Widget mobile(); | 13 | + Widget phone(); |
14 | Widget tablet(); | 14 | Widget tablet(); |
15 | Widget desktop(); | 15 | Widget desktop(); |
16 | Widget watch(); | 16 | Widget watch(); |
17 | } | 17 | } |
18 | 18 | ||
19 | -class GetResponsiveView<T> extends GetResponsive<T> { | 19 | +/// Extend this widget to build responsive view. |
20 | +/// this widget contains the `screen` property that have all | ||
21 | +/// information about the screen size and type. | ||
22 | +/// You have two options to build it. | ||
23 | +/// 1- with `builder` method you return the widget to build. | ||
24 | +/// 2- with methods `desktop`, `tablet`,`phone`, `watch`. the specific | ||
25 | +/// method will be built when the screen type matches the method | ||
26 | +/// when the screen is [ScreenType.Tablet] the `tablet` method | ||
27 | +/// will be exuded and so on. | ||
28 | +/// Note if you use this method please set the | ||
29 | +/// property `alwaysUseBuilder` to false | ||
30 | +/// With `settings` property you can set the width limit for the screen types. | ||
31 | +class GetResponsiveView<T> extends _GetResponsive<T> { | ||
20 | final bool alwaysUseBuilder = true; | 32 | final bool alwaysUseBuilder = true; |
21 | GetResponsiveView( | 33 | GetResponsiveView( |
22 | {alwaysUseBuilder, | 34 | {alwaysUseBuilder, |
@@ -40,10 +52,10 @@ class GetResponsiveView<T> extends GetResponsive<T> { | @@ -40,10 +52,10 @@ class GetResponsiveView<T> extends GetResponsive<T> { | ||
40 | if (widget != null) return widget; | 52 | if (widget != null) return widget; |
41 | } | 53 | } |
42 | if (screen.isPhone) { | 54 | if (screen.isPhone) { |
43 | - widget = mobile() ?? tablet() ?? desktop(); | 55 | + widget = phone() ?? tablet() ?? desktop(); |
44 | if (widget != null) return widget; | 56 | if (widget != null) return widget; |
45 | } | 57 | } |
46 | - return watch() ?? mobile() ?? tablet() ?? desktop() ?? builder(); | 58 | + return watch() ?? phone() ?? tablet() ?? desktop() ?? builder(); |
47 | } | 59 | } |
48 | 60 | ||
49 | @override | 61 | @override |
@@ -53,7 +65,7 @@ class GetResponsiveView<T> extends GetResponsive<T> { | @@ -53,7 +65,7 @@ class GetResponsiveView<T> extends GetResponsive<T> { | ||
53 | Widget desktop() => null; | 65 | Widget desktop() => null; |
54 | 66 | ||
55 | @override | 67 | @override |
56 | - Widget mobile() => null; | 68 | + Widget phone() => null; |
57 | 69 | ||
58 | @override | 70 | @override |
59 | Widget tablet() => null; | 71 | Widget tablet() => null; |
-
Please register or login to post a comment