This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:flutter/material.dart'; | |
void main() => runApp(MyApp()); | |
class MyApp extends StatelessWidget { | |
@override | |
Widget build(BuildContext context) { | |
return const MaterialApp( | |
home: HomePage(), | |
); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class DetailsPage extends StatelessWidget { | |
const DetailsPage({super.key}); | |
@override | |
Widget build(BuildContext context) { | |
log('DetailsPage'); | |
return Scaffold( | |
appBar: AppBar(), | |
body: const Center( | |
child: Padding( |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class HomePage extends StatelessWidget { | |
const HomePage({super.key}); | |
@override | |
Widget build(BuildContext context) { | |
log('HomePage'); | |
return Scaffold( | |
appBar: AppBar(), | |
body: Center( | |
child: Text( |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class EnsureTextFieldVisible extends StatelessWidget { | |
const EnsureTextFieldVisible({super.key}); | |
@override | |
Widget build(BuildContext context) { | |
// for validation | |
final key = GlobalKey(); | |
// to learn the position of the widget | |
final formKey = GlobalKey<FormState>(); | |
return Scaffold( |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class UnfocusArea extends StatelessWidget { | |
const UnfocusArea({super.key, required this.child}); | |
final Widget child; | |
@override | |
Widget build(BuildContext context) { | |
return GestureDetector( | |
// Makes clickable on everywhere even if the widget is not opaque | |
behavior: HitTestBehavior.opaque, | |
// Magic happens here |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class UnfocusOnScroll extends StatelessWidget { | |
const UnfocusOnScroll({super.key}); | |
@override | |
Widget build(BuildContext context) { | |
return Scaffold( | |
appBar: AppBar( | |
title: const Text('Unfocus on scroll'), | |
bottom: const PreferredSize( | |
preferredSize: Size.fromHeight(60), |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class DoubleBack extends StatefulWidget { | |
const DoubleBack({super.key, required this.child}); | |
final Widget child; | |
@override | |
State<DoubleBack> createState() => _DoubleBackState(); | |
} | |
class _DoubleBackState extends State<DoubleBack> { | |
DateTime? pressedTime; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class RememberScrollPosition extends StatefulWidget { | |
const RememberScrollPosition({super.key}); | |
@override | |
State<RememberScrollPosition> createState() => _RememberScrollPositionState(); | |
} | |
class _RememberScrollPositionState extends State<RememberScrollPosition> { | |
int currentIndex = 0; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class NextFocusOnEnter extends StatelessWidget { | |
const NextFocusOnEnter({super.key}); | |
@override | |
Widget build(BuildContext context) { | |
return Scaffold( | |
appBar: AppBar( | |
title: const Text('Next focus on enter'), | |
), | |
body: Column( |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class AutoFocusOnOpen extends StatelessWidget { | |
const AutoFocusOnOpen({super.key}); | |
@override | |
Widget build(BuildContext context) { | |
return Scaffold( | |
appBar: AppBar( | |
title: const Text('Auto focus on open'), | |
), | |
body: const Center( |
NewerOlder