fixed flashing app bar during hero in some cases

This commit is contained in:
Thibault Deckers 2022-05-25 17:37:47 +09:00
parent 0425d8146b
commit 60fccd9827
2 changed files with 23 additions and 25 deletions

View file

@ -203,8 +203,9 @@ class _CollectionAppBarState extends State<CollectionAppBar> with SingleTickerPr
final l10n = context.l10n; final l10n = context.l10n;
if (isSelecting) { if (isSelecting) {
return Selector<Selection<AvesEntry>, int>( // `Selection` may not be available during hero
selector: (context, selection) => selection.selectedItems.length, return Selector<Selection<AvesEntry>?, int>(
selector: (context, selection) => selection?.selectedItems.length ?? 0,
builder: (context, count, child) => Text( builder: (context, count, child) => Text(
count == 0 ? l10n.collectionSelectPageTitle : l10n.itemCount(count), count == 0 ? l10n.collectionSelectPageTitle : l10n.itemCount(count),
softWrap: false, softWrap: false,
@ -322,8 +323,9 @@ class _CollectionAppBarState extends State<CollectionAppBar> with SingleTickerPr
final onPressed = enabled ? () => _onActionSelected(action) : null; final onPressed = enabled ? () => _onActionSelected(action) : null;
switch (action) { switch (action) {
case EntrySetAction.toggleTitleSearch: case EntrySetAction.toggleTitleSearch:
return Selector<Query, bool>( // `Query` may not be available during hero
selector: (context, query) => query.enabled, return Selector<Query?, bool>(
selector: (context, query) => query?.enabled ?? false,
builder: (context, queryEnabled, child) { builder: (context, queryEnabled, child) {
return _TitleSearchToggler( return _TitleSearchToggler(
queryEnabled: queryEnabled, queryEnabled: queryEnabled,

View file

@ -2,7 +2,6 @@ import 'package:aves/model/settings/settings.dart';
import 'package:aves/theme/durations.dart'; import 'package:aves/theme/durations.dart';
import 'package:aves/widgets/aves_app.dart'; import 'package:aves/widgets/aves_app.dart';
import 'package:aves/widgets/common/fx/blurred.dart'; import 'package:aves/widgets/common/fx/blurred.dart';
import 'package:aves/widgets/common/providers/query_provider.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@ -101,9 +100,7 @@ class AvesAppBar extends StatelessWidget {
final pushing = direction == HeroFlightDirection.push; final pushing = direction == HeroFlightDirection.push;
Widget popBuilder(context, child) => Opacity(opacity: 1 - animation.value, child: child); Widget popBuilder(context, child) => Opacity(opacity: 1 - animation.value, child: child);
Widget pushBuilder(context, child) => Opacity(opacity: animation.value, child: child); Widget pushBuilder(context, child) => Opacity(opacity: animation.value, child: child);
return QueryProvider( return Material(
initialQuery: null,
child: Material(
type: MaterialType.transparency, type: MaterialType.transparency,
child: DefaultTextStyle( child: DefaultTextStyle(
style: DefaultTextStyle.of(toHero).style, style: DefaultTextStyle.of(toHero).style,
@ -122,7 +119,6 @@ class AvesAppBar extends StatelessWidget {
], ],
), ),
), ),
),
); );
} }