如何解决如何在颤振中使配置文件应用栏像电报一样?
由于我是 Flutter 的新手,所以我想要这个动画的完整实现。
解决方法
/// Flutter code sample for SliverAppBar
// This sample shows a [SliverAppBar] and it's behavior when using the
// [pinned],[snap] and [floating] parameters.
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
/// This is the main application widget.
class MyApp extends StatelessWidget {
static const String _title = 'Flutter Code Sample';
@override
Widget build(BuildContext context) {
return const MaterialApp(
title: _title,home: MyStatefulWidget(),);
}
}
/// This is the stateful widget that the main application instantiates.
class MyStatefulWidget extends StatefulWidget {
const MyStatefulWidget();
@override
_MyStatefulWidgetState createState() => _MyStatefulWidgetState();
}
/// This is the private State class that goes with MyStatefulWidget.
class _MyStatefulWidgetState extends State<MyStatefulWidget> {
bool _pinned = true;
bool _snap = false;
bool _floating = false;
// [SliverAppBar]s are typically used in [CustomScrollView.slivers],which in
// turn can be placed in a [Scaffold.body].
@override
Widget build(BuildContext context) {
return Scaffold(
body: CustomScrollView(
slivers: <Widget>[
SliverAppBar(
pinned: _pinned,snap: _snap,floating: _floating,expandedHeight: 160.0,flexibleSpace: const FlexibleSpaceBar(
title: Text('SliverAppBar'),background: FlutterLogo(),),const SliverToBoxAdapter(
child: SizedBox(
height: 20,child: Center(
child: Text('Scroll to see the SliverAppBar in effect.'),SliverList(
delegate: SliverChildBuilderDelegate(
(BuildContext context,int index) {
return Container(
color: index.isOdd ? Colors.white : Colors.black12,height: 100.0,child: Center(
child: Text('$index',textScaleFactor: 5),);
},childCount: 20,],bottomNavigationBar: BottomAppBar(
child: ButtonBar(
alignment: MainAxisAlignment.spaceEvenly,children: <Widget>[
Row(
children: <Widget>[
const Text('pinned'),Switch(
onChanged: (bool val) {
setState(() {
_pinned = val;
});
},value: _pinned,Row(
children: <Widget>[
const Text('snap'),Switch(
onChanged: (bool val) {
setState(() {
_snap = val;
// Snapping only applies when the app bar is floating.
_floating = _floating || _snap;
});
},value: _snap,Row(
children: <Widget>[
const Text('floating'),Switch(
onChanged: (bool val) {
setState(() {
_floating = val;
_snap = _snap && _floating;
});
},value: _floating,);
}
}
来源 - https://api.flutter.dev/flutter/material/SliverAppBar-class.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。