Appbar(应用栏)是许多应用程序中的一个常见组件,通常位于屏幕的顶部,用于显示应用的标题、导航按钮和其他操作选项。Appbar的过渡动画(如颤动)是一种视觉效果,用于在某些事件发生时(如点击按钮、切换视图等)增强用户体验。
Appbar的过渡动画有很多种类型,包括但不限于:
原因:
解决方法:
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Appbar Transition Animation'),
actions: [
IconButton(
icon: Icon(Icons.add),
onPressed: () {
// 触发动画
_animateAppBar();
},
),
],
),
body: Center(child: Text('Hello World')),
),
);
}
void _animateAppBar() {
final appBar = AppBar.of(context);
final originalTitle = appBar.title;
appBar.title = Text('New Title');
// 使用Tween动画实现颤动效果
Tween<double>(begin: 0, end: 1).animate(CurvedAnimation(
parent: AnimationController(
duration: const Duration(milliseconds: 200),
vsync: this,
),
)).addListener(() {
appBar.title = Text(
originalTitle.text,
style: TextStyle(fontSize: 16 + 4 * _animation.value),
);
});
// 启动动画
AnimationController controller = AnimationController(
vsync: this,
duration: const Duration(milliseconds: 200),
);
controller.forward().then((_) {
appBar.title = originalTitle;
});
}
}
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云