#flutter #flutter-animation
#flutter #flutter-анимация
Вопрос:
Я хочу растянуть изображение при прокрутке пользователем.
Container(
child: Image.asset(
'assets/appHeader.png',
fit: BoxFit.cover,
width: size.width,
height: 170,
),
)
Это изображение находится в верхней части страницы, и когда пользователь прокручивает вверх, я хочу растянуть изображение.
Это будет похоже на растягивание в SliverAppBar. Я довольно новичок в flutter, поэтому я мало что знаю об анимации.
Ответ №1:
Попробуйте это, я создаю это с помощью FlexibleSpaceBar.
@override
Widget build(BuildContext context) {
return Scaffold(
body: NestedScrollView(
headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
return <Widget>[
SliverAppBar(
expandedHeight: 200.0,
floating: false,
//pinned: true, if you need to show appBar.
pinned: false,
flexibleSpace: FlexibleSpaceBar(
centerTitle: true,
title: Text("Image Text(optional)",
style: TextStyle(
color: Colors.white,
fontSize: 16.0,
)),
background: Image.network(
"https://miro.medium.com/max/700/1*_nCC_uFDVYas8uYa9m6fQQ.jpeg",
fit: BoxFit.cover,
)
/*-------Your Image here--------*/
/* Image.asset(
'assets/appHeader.png',
fit: BoxFit.cover,
width: size.width,
height: 170,
),*/
),
),
];
},
body: Center(
child: Text("Your screen data"),
),
),
);
}
Комментарии:
1. Я не хочу, чтобы заголовок отображался при прокрутке вниз.
2. хорошо, я обновлю ответ в соответствии с вашим требованием.
3. еще один вопрос. Как я могу поместить на него другой контейнер?? как будто мы делаем это в стеке
4. означает.. вам нужно добавить контейнер в тело. или в любое другое место. я не понимаю: «Как я могу поместить на него другой контейнер?? как будто мы делаем это в стеке»‘
5. Я хочу добавить контейнер поверх SliverAppBar
Ответ №2:
это обновление ответа относительно (которое вы задаете в комментарии) (это применимо только для этой ситуации, о которой мы говорим).
@override
Widget build(BuildContext context) {
return Container(
child: Stack(
children: [
Scaffold(
//same code that above write
)
],
),
);
}
Комментарии:
1. Могу ли я тогда добавить стек??