У меня проблемы с анимацией панели приложения, я использую SilverAppBar
в своем приложении.Итак, проблема в том, что когда я нахожусь в середине своего списка и прокручиваю вверх, панель приложения не появляется, но появляется только тогда, когда прокрутка достигает верхней части списка элементов.Я уже проверил параметр snap
и дал ему true
, но не ожидаемый результат.У меня есть идеи по созданию настраиваемой анимации для этого, но я не слишком опытен во Flutter, и если есть способ добавить параметры или другой виджет, который будет работать в моей ситуации, это было бы здорово.
Фактический код демонстрации, которую я использую:
Widget _search() => Container(
color: Colors.grey[400],
child: SafeArea(
child: Container(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: TextField(
enabled: false,
style: TextStyle(fontSize: 16, color: Colors.white),
decoration: InputDecoration(
prefix: SizedBox(width: 12),
hintText: "Search",
contentPadding:
EdgeInsets.symmetric(horizontal: 32.0, vertical: 14.0),
border: InputBorder.none,
),
),
),
)),
);
Container _buildBody() {
return Container(
child: new GridView.count(
crossAxisCount: 2,
children: List.generate(100, (index) {
return Center(
child: Text(
'Item $index',
style: Theme.of(context).textTheme.headline,
),
);
}),
));
}
@override
Widget build(BuildContext context) {
return new Scaffold(
resizeToAvoidBottomPadding: false,
body: new NestedScrollView(
headerSliverBuilder:
(BuildContext context, bool innerBoxIsScrolled) {
return <Widget>[
new SliverAppBar(
title: Text("Demo",
style: TextStyle(
color: Colors.white,
)),
pinned: false,
floating: true,
forceElevated: innerBoxIsScrolled,
),
];
},
body: new Column(children: <Widget>[
_search(),
new Expanded(child: _buildBody())
])));
}
Результат, который я имею сейчас: Изображение 1
Результат, который я получил после предоставления *От 1013 * до параметра snap
: Изображение 2
Множество приложений, таких как WhatsApp, Facebook, LinkedIn ... имеют эту анимированную панель приложений.Чтобы объяснить, чего именно я ожидаю от этой анимированной панели приложений, я добавил пример Google Play Store, показывающий нужную анимацию: Пример Play Store