Skip to content

Commit

Permalink
This fixes the annoying issue that opens up the keyboard after changi…
Browse files Browse the repository at this point in the history
…ng pages
  • Loading branch information
Wolfteam committed Mar 7, 2021
1 parent 37565e3 commit 5a653e7
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 10 deletions.
2 changes: 2 additions & 0 deletions lib/presentation/main_tab_page.dart
Expand Up @@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:genshindb/application/bloc.dart';
import 'package:genshindb/generated/l10n.dart';
import 'package:genshindb/presentation/shared/extensions/focus_scope_node_extensions.dart';
import 'package:rate_my_app/rate_my_app.dart';

import 'artifacts/artifacts_page.dart';
Expand Down Expand Up @@ -110,6 +111,7 @@ class _MainTabPageState extends State<MainTabPage> with SingleTickerProviderStat
}

void _changeCurrentTab(int index) {
FocusScope.of(context).removeFocus();
setState(() {
_index = index;
_tabController.index = index;
Expand Down
@@ -0,0 +1,9 @@
import 'package:flutter/material.dart';

extension FocusScopeNodeExtensions on FocusScopeNode {
void removeFocus() {
if (!hasPrimaryFocus && focusedChild != null) {
focusedChild.unfocus();
}
}
}
4 changes: 3 additions & 1 deletion lib/presentation/shared/search_box.dart
@@ -1,10 +1,12 @@
import 'package:flutter/material.dart';
import 'package:genshindb/generated/l10n.dart';

typedef SearchChanged = void Function(String val);

class SearchBox extends StatefulWidget {
final String value;
final bool showClearButton;
final Function(String) searchChanged;
final SearchChanged searchChanged;

const SearchBox({
Key key,
Expand Down
4 changes: 3 additions & 1 deletion lib/presentation/shared/sliver_page_filter.dart
Expand Up @@ -3,10 +3,12 @@ import 'package:flutter/material.dart';
import 'genshin_db_icons.dart';
import 'search_box.dart';

typedef OnPressed = void Function();

class SliverPageFilter extends StatelessWidget {
final String title;
final String search;
final Function onPressed;
final OnPressed onPressed;
final Function(String) searchChanged;

const SliverPageFilter({
Expand Down
22 changes: 14 additions & 8 deletions lib/presentation/shared/sliver_scaffold_with_fab.dart
@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';

import 'app_fab.dart';
import 'extensions/focus_scope_node_extensions.dart';
import 'extensions/scroll_controller_extensions.dart';

class SliverScaffoldWithFab extends StatefulWidget {
Expand Down Expand Up @@ -34,14 +35,19 @@ class _SliverScaffoldWithFabState extends State<SliverScaffoldWithFab> with Sing

@override
Widget build(BuildContext context) {
return Scaffold(
body: CustomScrollView(
controller: _scrollController,
slivers: widget.slivers,
),
floatingActionButton: AppFab(
hideFabAnimController: _hideFabAnimController,
scrollController: _scrollController,
return Listener(
onPointerDown: (_) {
FocusScope.of(context).removeFocus();
},
child: Scaffold(
body: CustomScrollView(
controller: _scrollController,
slivers: widget.slivers,
),
floatingActionButton: AppFab(
hideFabAnimController: _hideFabAnimController,
scrollController: _scrollController,
),
),
);
}
Expand Down

0 comments on commit 5a653e7

Please sign in to comment.