Browse Source

[flutter_example_packages] Fix rotate resize

merge-requests/21/head
Vitaliy Zarubin 2 years ago
parent
commit
ecdf164d97
  1. 13
      example/lib/pages/home/page.dart
  2. 30
      example/lib/widgets/base/app_state.dart

13
example/lib/pages/home/page.dart

@ -29,7 +29,7 @@ class _HomePageState extends AppState<HomePage> {
final ScrollController _controllerListView = ScrollController(); final ScrollController _controllerListView = ScrollController();
@override @override
void didChangeMetrics() { void onDidChangeMetrics() {
setState(() { setState(() {
_hH = _header.getHeight() ?? 0; _hH = _header.getHeight() ?? 0;
}); });
@ -125,11 +125,11 @@ class _HomePageState extends AppState<HomePage> {
child: Container( child: Container(
key: _header, key: _header,
width: double.infinity, width: double.infinity,
padding: const EdgeInsets.only( padding: EdgeInsets.only(
left: 20, left: 20,
right: 20, right: 20,
top: 30, top: media.orientation == Orientation.portrait ? 30 : 10,
bottom: 90, bottom: media.orientation == Orientation.portrait ? 90 : 70,
), ),
child: Column( child: Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
@ -139,7 +139,10 @@ class _HomePageState extends AppState<HomePage> {
l10n.homeWelcomeTitle, l10n.homeWelcomeTitle,
color: Colors.white, color: Colors.white,
), ),
const SizedBox(height: 40), SizedBox(
height:
media.orientation == Orientation.portrait ? 40 : 20,
),
TextBodyLarge( TextBodyLarge(
l10n.homeWelcomeText(packages.length), l10n.homeWelcomeText(packages.length),
color: Colors.white, color: Colors.white,

30
example/lib/widgets/base/app_state.dart

@ -10,25 +10,35 @@ abstract class AppState<T extends StatefulWidget> extends State<T>
); );
void onPostFrameCallback() {} void onPostFrameCallback() {}
void onDidChangeMetrics() {}
void _delayedChangeMetrics() {
onDidChangeMetrics();
Future.delayed(const Duration(milliseconds: 100), () {
onDidChangeMetrics();
});
Future.delayed(const Duration(milliseconds: 200), () {
onDidChangeMetrics();
});
Future.delayed(const Duration(milliseconds: 500), () {
onDidChangeMetrics();
});
}
@override @override
void initState() { void initState() {
super.initState(); super.initState();
WidgetsBinding.instance.addObserver(this); WidgetsBinding.instance.addObserver(this);
WidgetsBinding.instance.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
didChangeMetrics(); _delayedChangeMetrics();
Future.delayed(const Duration(milliseconds: 100), () {
didChangeMetrics();
});
Future.delayed(const Duration(milliseconds: 200), () {
didChangeMetrics();
});
Future.delayed(const Duration(milliseconds: 500), () {
didChangeMetrics();
});
}); });
} }
@override
void didChangeMetrics() {
_delayedChangeMetrics();
}
@override @override
void dispose() { void dispose() {
WidgetsBinding.instance.removeObserver(this); WidgetsBinding.instance.removeObserver(this);

Loading…
Cancel
Save