内容简介:在如果有更进一步的需求,比如说要在启动页加载广告图,并延时几秒的功能,就需要自己实现了。
Android 启动页
在 android/app/src/main/res/drawable/launch_background.xml 中已经有写好的启动页,只需修改即可
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/white" />
<!-- You can insert your own image assets here -->
<item>
<bitmap
android:gravity="center"
android:src="@mipmap/ic_launcher" />
</item>
</layer-list>
复制代码
如果有更进一步的需求,比如说要在启动页加载广告图,并延时几秒的功能,就需要自己实现了。
思路如下
在main方法中返回自己定义的 SplashWidgit (名字随便起),在其中处理自己的逻辑,包括加载广告图、设置延时等,延时结束后,跳转至真正的主页即可。
状态栏
- 状态栏颜色
1.使用 MaterialApp 的 theme 属性, theme: ThemeData(primaryColor: Colors.green) , 请注意 :这个是全局的
AppBar 的
backgroundColor 属性,
backgroundColor: Colors.deepOrange
AppBar ,由于
Flutter 默认是从屏幕最顶部开始布局,所以,修改状态栏颜色简直太容易,只需要通过
MediaQueryData.fromWindow(WidgetsBinding.instance.window).padding.top
取得状态栏高度即可。
Container(
color: Colors.white,
child: Column(
children: <Widget>[
Container(
//状态栏高度
height: MediaQueryData.fromWindow(WidgetsBinding.instance.window)
.padding
.top,
color: Colors.blue,
),
Container(
height: 200,
color: Colors.brown,
),
],
),
);
复制代码
Container 的
decoration
属性
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [Colors.cyan, Colors.brown, Colors.deepOrange],
)),
复制代码
- 字体颜色
使用 AppBar 的 brightness 属性: Brightness.light 为黑色, Brightness.dark 为白色;
不使用 AppBar 时,可以通过嵌套 AnnotatedRegion<SystemUiOverlayStyle> 来实现。
class StatusDemo extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
color: Colors.white,
child: AnnotatedRegion<SystemUiOverlayStyle>(
child: Column(
children: <Widget>[
Container(
height: 200,
color: Colors.brown,
),
],
),
value: SystemUiOverlayStyle(
statusBarColor: Colors.cyan,
//有Appbar时,会被覆盖
statusBarIconBrightness: Brightness.light,
//底部navigationBar背景颜色
systemNavigationBarColor: Colors.white),
),
);
}
}
复制代码
- 渐变色
使用 AppBar 的 flexibleSpace ,其中渐变方式还可选择 RadialGradient 和 SweepGradient
appBar: AppBar(
title: Text('DemoPage'),
flexibleSpace: Container(
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [Colors.cyan, Colors.brown, Colors.deepOrange],
)),
),
)
复制代码
返回键监听
可以 WillPopScope 嵌套,可以用于监听处理返回键的逻辑。其实 WillPopScope 并不是监听返回按键,是当前页面将要被 pop 时触发的回调。
class _StatusDemoState extends State<StatusDemo> {
@override
Widget build(BuildContext context) {
return WillPopScope(
child: StatusWidget(),
onWillPop: () {
///如果返回 return new Future.value(false); popped 就不会被处理
///如果返回 return new Future.value(true); popped 就会触发
///这里可以通过 showDialog 弹出确定框,在返回时通过 Navigator.of(context).pop(true);决定是否退出
return showExitDialog(context);
},
);
}
Future<bool> showExitDialog(BuildContext context) {
return showDialog(
context: context,
builder: (BuildContext content) {
return AlertDialog(
title: Text("提示"),
content: Text("确认退出吗?"),
actions: <Widget>[
GestureDetector(
child: Container(
child: Text('退出'),
),
onTap: () {
Navigator.of(context).pop(true);
},
),
GestureDetector(
child: Container(
child: Text('取消'),
),
onTap: () {
Navigator.of(context).pop();
},
),
],
);
});
}
}
复制代码
选取图片
使用的是 Flutter 提供的 image_picker
首先,在pubspec.yaml文件中添加依赖 image_picker: '0.6.0+8'
class TakeDemo extends StatefulWidget {
@override
_TakeDemoState createState() => _TakeDemoState();
}
class _TakeDemoState extends State<TakeDemo> {
File _image;
@override
Widget build(BuildContext context) {
return Container(
color: Colors.white,
padding: EdgeInsets.only(top: 20),
alignment: AlignmentDirectional.center,
child: Column(
children: <Widget>[
FlatButton(
onPressed: () {
getImage();
},
child: Text('从相册选择'),
),
Center(
child: _image == null
? Text('No image selected.',style: TextStyle(fontSize: 14),)
: Image.file(_image),
),
],
),
);
}
Future getImage() async {
//gallery相册,camera拍照
var image = await ImagePicker.pickImage(source: ImageSource.gallery);
setState(() {
_image = image;
});
}
}
复制代码
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 利用云开发优化博客小程序(二)——评论功能
- beego开发轻博客——第十讲 点赞功能
- 一款功能强大的 PHP 开发框架
- 利用云开发优化博客小程序(三)——生成海报功能
- 微信小程序左滑删除功能开发案例
- 斗地主游戏排行榜功能快速开发教程
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
PHP和MySQL Web开发(原书第4版)
Luke Welling、Laura Thomson / 武欣 / 机械工业出版社 / 2009 / 95.00元
本书将PHP开发与MySQL应用相结合,分别对PHP和MySQL做了深入浅出的分析,不仅介绍PHP和MySQL的一般概念,而且对PHP和MySQL的Web应用做了较全面的阐述,并包括几个经典且实用的例子。. 本书是第4版,经过了全面的更新、重写和扩展,包括PHP 5.3最新改进的特性(例如,更好的错误和异常处理),MySQL的存储过程和存储引擎,Ajax技术与Web 2.0以及Web应用需要......一起来看看 《PHP和MySQL Web开发(原书第4版)》 这本书的介绍吧!