Flutter浮动操作按钮可见性控制插件flutter_fab_visibility的使用
Flutter浮动操作按钮可见性控制插件flutter_fab_visibility的使用
一个用于在向上滚动时隐藏浮动操作按钮(FAB),向下滚动时重新显示的新Flutter插件。
截图
获取开始
要将以下依赖添加到您的pubspec.yaml
文件中:
flutter_fab_visibility: 0.0.1
使用
下面是一个简单的示例,展示了如何使用VisibleFAB
来控制FAB的可见性:
VisibleFAB(
onPressed: () {
Navigator.pop(context);
},
child: Icon(Icons.add),
)
功能特性
- 兼容Android和iOS平台。
显示一些爱心并给仓库点赞以支持该项目
示例应用
您可以查看示例应用。
创建与维护者
如果您觉得这个项目对您有帮助或从源码中学到了东西,并想要感谢我,请发送邮件至 darshan51081@gmail.com
许可证
Copyright 2022 Darshan N
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
文档
有关使用Flutter的更多信息,请参阅我们的在线文档。
额外信息
此包轻量级且包含所有浮动操作按钮的属性。
示例代码
import 'package:flutter/material.dart';
import 'package:flutter_fab_visibility/floating_action_button.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
bool _showFab = true;
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void _incrementCounter() {
setState(() {
_counter++;
});
}
[@override](/user/override)
Widget build(BuildContext context) {
const duration = Duration(milliseconds: 300);
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text('You have pushed the button this many times:'),
Text(
'$_counter',
style: Theme.of(context).textTheme.headline4,
),
],
),
),
floatingActionButton: AnimatedSlide(
duration: duration,
offset: _showFab ? Offset.zero : const Offset(0, 2),
child: AnimatedOpacity(
duration: duration,
opacity: _showFab ? 1 : 0,
child: FloatingActionButton(
onPressed: () {},
child: const Icon(Icons.add),
),
),
),
);
}
}
更多关于Flutter浮动操作按钮可见性控制插件flutter_fab_visibility的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter浮动操作按钮可见性控制插件flutter_fab_visibility的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
flutter_fab_visibility
是一个用于控制浮动操作按钮(FAB)可见性的 Flutter 插件。通过这个插件,你可以根据用户的滚动行为或其他条件动态显示或隐藏 FAB。以下是使用 flutter_fab_visibility
插件的基本步骤:
1. 添加依赖
首先,在 pubspec.yaml
文件中添加 flutter_fab_visibility
插件的依赖:
dependencies:
flutter:
sdk: flutter
flutter_fab_visibility: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装依赖。
2. 使用 FabVisibility
组件
FabVisibility
是一个 Widget
,它可以根据给定的条件自动控制 FAB 的可见性。你可以将它包裹在你的 Scaffold
中,并使用 visibility
参数来控制 FAB 的显示和隐藏。
import 'package:flutter/material.dart';
import 'package:flutter_fab_visibility/flutter_fab_visibility.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: FabVisibilityExample(),
);
}
}
class FabVisibilityExample extends StatefulWidget {
[@override](/user/override)
_FabVisibilityExampleState createState() => _FabVisibilityExampleState();
}
class _FabVisibilityExampleState extends State<FabVisibilityExample> {
bool _isFabVisible = true;
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('FAB Visibility Example'),
),
body: FabVisibility(
visibility: _isFabVisible,
child: ListView.builder(
itemCount: 50,
itemBuilder: (context, index) {
return ListTile(
title: Text('Item $index'),
);
},
),
),
floatingActionButton: _isFabVisible
? FloatingActionButton(
onPressed: () {
setState(() {
_isFabVisible = false;
});
},
child: Icon(Icons.add),
)
: null,
);
}
}
3. 动态控制 FAB 可见性
在上面的例子中,我们使用了一个 _isFabVisible
的布尔变量来控制 FAB 的可见性。当用户点击 FAB 时,我们会将 _isFabVisible
设置为 false
,从而隐藏 FAB。
4. 根据滚动行为控制 FAB 可见性
flutter_fab_visibility
还支持根据用户的滚动行为自动控制 FAB 的可见性。你可以使用 FabVisibility
的 scrollController
参数来监听滚动事件,并根据滚动方向或位置动态显示或隐藏 FAB。
class _FabVisibilityExampleState extends State<FabVisibilityExample> {
bool _isFabVisible = true;
ScrollController _scrollController = ScrollController();
[@override](/user/override)
void initState() {
super.initState();
_scrollController.addListener(_scrollListener);
}
void _scrollListener() {
if (_scrollController.position.userScrollDirection == ScrollDirection.reverse) {
setState(() {
_isFabVisible = false;
});
} else if (_scrollController.position.userScrollDirection == ScrollDirection.forward) {
setState(() {
_isFabVisible = true;
});
}
}
[@override](/user/override)
void dispose() {
_scrollController.removeListener(_scrollListener);
super.dispose();
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('FAB Visibility Example'),
),
body: FabVisibility(
scrollController: _scrollController,
visibility: _isFabVisible,
child: ListView.builder(
controller: _scrollController,
itemCount: 50,
itemBuilder: (context, index) {
return ListTile(
title: Text('Item $index'),
);
},
),
),
floatingActionButton: _isFabVisible
? FloatingActionButton(
onPressed: () {
// FAB 点击事件
},
child: Icon(Icons.add),
)
: null,
);
}
}