Android studio 在颤振五秒钟后隐藏internet连接条
我是一个新手,我在YouTube上观看了一段关于添加互联网连接验证条的视频,但它是固定的,不会消失,我如何在指定时间后隐藏它 这是连接杆!Android studio 在颤振五秒钟后隐藏internet连接条,android-studio,flutter,dart,Android Studio,Flutter,Dart,我是一个新手,我在YouTube上观看了一段关于添加互联网连接验证条的视频,但它是固定的,不会消失,我如何在指定时间后隐藏它 这是连接杆! Builder( 生成器:(BuildContext上下文){ 返回脱机生成器( ConnectionBuilder:(BuildContext上下文, ConnectivityResult连接,小部件子项){ 最终布尔连接= 连接性!=ConnectivityResult.none; 返回堆栈( fit:StackFit.expand, 儿童:[ 小孩
Builder(
生成器:(BuildContext上下文){
返回脱机生成器(
ConnectionBuilder:(BuildContext上下文,
ConnectivityResult连接,小部件子项){
最终布尔连接=
连接性!=ConnectivityResult.none;
返回堆栈(
fit:StackFit.expand,
儿童:[
小孩
定位(
左:0.0,
右:0.0,
身高:32.0,
子:动画容器(
持续时间:常量持续时间(毫秒:300),
颜色:
连接?颜色。来自RGBO(46,204,113,1):颜色。来自RGBO(231,76,60,1),
孩子:连接
?行(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
正文(
“在线”,
样式:TextStyle(颜色:Colors.white),
),
],
)
:行(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
正文(
“离线”,
样式:TextStyle(颜色:Colors.white),
),
大小盒子(
宽度:8.0,
),
大小盒子(
宽度:12.0,
身高:12.0,
子对象:循环压缩机指示器(
冲程宽度:2.0,
valueColor:
总是被打倒(
颜色(白色),
),
),
],
),
),
),
],
);
},
);
},
),
我把密码放进去,我看着
有人可以修改代码使其按我的要求工作吗?您可以复制粘贴运行下面的完整代码
您可以使用
可见性包装定位
,并在一段时间后将可见
设置为假
代码片段
_hideBar() {
Timer(Duration(seconds: 5), () {
setState(() {
_visible = false;
});
});
}
@override
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) {
_hideBar();
});
}
...
Visibility(
visible: _visible,
child: Positioned(
height: 32.0,
工作演示
完整代码
import 'package:flutter/material.dart';
import 'package:flutter_offline/flutter_offline.dart';
import 'dart:async';
class DemoPage extends StatefulWidget {
@override
_DemoPageState createState() => _DemoPageState();
}
class _DemoPageState extends State<DemoPage> {
bool _visible = true;
_hideBar() {
Timer(Duration(seconds: 5), () {
setState(() {
_visible = false;
});
});
}
@override
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) {
_hideBar();
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Offline Demo"),
),
body: OfflineBuilder(
connectivityBuilder: (
BuildContext context,
ConnectivityResult connectivity,
Widget child,
) {
final bool connected = connectivity != ConnectivityResult.none;
return Stack(
fit: StackFit.expand,
children: [
child,
Visibility(
visible: _visible,
child: Positioned(
height: 32.0,
left: 0.0,
right: 0.0,
child: AnimatedContainer(
duration: const Duration(milliseconds: 350),
color: connected ? Color(0xFF00EE44) : Color(0xFFEE4400),
child: AnimatedSwitcher(
duration: const Duration(milliseconds: 350),
child: connected
? Text('ONLINE')
: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('OFFLINE'),
SizedBox(width: 8.0),
SizedBox(
width: 12.0,
height: 12.0,
child: CircularProgressIndicator(
strokeWidth: 2.0,
valueColor: AlwaysStoppedAnimation<Color>(
Colors.white),
),
),
],
),
),
),
),
),
],
);
},
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'There are no bottons to push :)',
),
Text(
'Just turn off your internet.',
),
],
),
),
);
}
}
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: DemoPage(),
);
}
}
导入“包装:颤振/材料.省道”;
导入“package:flatter_offline/flatter_offline.dart”;
导入“dart:async”;
类DemoPage扩展了StatefulWidget{
@凌驾
_DemoPageState createState();
}
类_DemoPageState扩展状态{
bool_visible=真;
_希德巴尔(){
计时器(持续时间(秒数:5),(){
设置状态(){
_可见=假;
});
});
}
@凌驾
void initState(){
super.initState();
WidgetsBinding.instance.addPostFrameCallback((){
_hideBar();
});
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(“脱机演示”),
),
正文:OfflineBuilder(
connectivityBuilder:(
构建上下文上下文,
连接性结果连接性,
孩子,
) {
最终bool connected=连通性!=ConnectivityResult.none;
返回堆栈(
fit:StackFit.expand,
儿童:[
小孩
可见度(
可见:_可见,
孩子:定位(
身高:32.0,
左:0.0,
右:0.0,
子:动画容器(
持续时间:常数持续时间(毫秒:350),
颜色:已连接?颜色(0xFF00EE44):颜色(0xFFEE4400),
孩子:动画切换器(
持续时间:常数持续时间(毫秒:350),
孩子:连接
?文本(“在线”)
:行(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
文本(“脱机”),
尺寸箱(宽度:8.0),
大小盒子(
宽度:12.0,
身高:12.0,
子对象:循环压缩机指示器(
冲程宽度:2.0,
valueColor:始终停止动画(
颜色(白色),
),
),
],
),
),
),
),
),
],
);
},
子:列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
正文(
“没有要推的按钮:)”,
),
正文(
“只要关掉你的互联网。”,
),
],
),
),
);
}
}
void main()=>runApp(MyApp());
类MyApp扩展了无状态小部件{
//此小部件是应用程序的根。
@凌驾
小部件构建(构建上下文){
返回材料PP(
标题:“颤振演示”,
主题:主题数据(
主样本:颜色。蓝色,
),
主页:DemoPage(),
);
}
}
该代码仅在打开应用程序时有效!我希望它随时出现。
import 'package:flutter/material.dart';
import 'package:flutter_offline/flutter_offline.dart';
import 'dart:async';
class DemoPage extends StatefulWidget {
@override
_DemoPageState createState() => _DemoPageState();
}
class _DemoPageState extends State<DemoPage> {
bool _visible = true;
_hideBar() {
Timer(Duration(seconds: 5), () {
setState(() {
_visible = false;
});
});
}
@override
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) {
_hideBar();
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Offline Demo"),
),
body: OfflineBuilder(
connectivityBuilder: (
BuildContext context,
ConnectivityResult connectivity,
Widget child,
) {
final bool connected = connectivity != ConnectivityResult.none;
return Stack(
fit: StackFit.expand,
children: [
child,
Visibility(
visible: _visible,
child: Positioned(
height: 32.0,
left: 0.0,
right: 0.0,
child: AnimatedContainer(
duration: const Duration(milliseconds: 350),
color: connected ? Color(0xFF00EE44) : Color(0xFFEE4400),
child: AnimatedSwitcher(
duration: const Duration(milliseconds: 350),
child: connected
? Text('ONLINE')
: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('OFFLINE'),
SizedBox(width: 8.0),
SizedBox(
width: 12.0,
height: 12.0,
child: CircularProgressIndicator(
strokeWidth: 2.0,
valueColor: AlwaysStoppedAnimation<Color>(
Colors.white),
),
),
],
),
),
),
),
),
],
);
},
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'There are no bottons to push :)',
),
Text(
'Just turn off your internet.',
),
],
),
),
);
}
}
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: DemoPage(),
);
}
}