Flutter:堆组件Stack
简介堆组件Stack,其实该组件主要是用于每个子组件对其和定位。默认情况下Stack组件下的子组件都在左上角。
堆组件Stack,其实该组件主要是用于每个子组件对其和定位。默认情况下Stack组件下的子组件都在左上角。可以通过设置Stack的alignment属性来将所有的子组件的对其方式设置成top、right、left、bottom。
我们还可以通过Positioned组件来指定组件的位置,但是这个组件必须在Stack组件中使用。
本节我们还要学习另外一个组件就是IndexedStack组件,Index我们都知道表示索引,所以在一堆组件中,我们如果指定一个索引值,那么就会显示对应的那个组件,而其他组件将会影藏。
1、对其方式
import 'package:flutter/material.dart';
class DemoStack extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Stack(
alignment: Alignment.topRight,
children: <Widget>[
Text(
"Flutter",
style: TextStyle(
color: Colors.red,
),
),
Container(
width: 100.0,
height: 100.0,
alignment: Alignment.center,
decoration: BoxDecoration(
border: Border.all(
color: Colors.blue,
)),
child: Text("C"),
),
],
);
}
}
上面将Stack的对其方式设置成了topRight对其,所有上面的文本对其就在右上角。
2、定位方式
import 'package:flutter/material.dart';
class DemoStack extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Stack(
alignment: Alignment.topRight,
children: <Widget>[
Text(
"Flutter",
style: TextStyle(
color: Colors.red,
),
),
Container(
width: 100.0,
height: 100.0,
alignment: Alignment.center,
decoration: BoxDecoration(
border: Border.all(
color: Colors.blue,
)),
child: Text("C"),
),
Positioned(
bottom: 0.0,
right: 50.0,
child: Text('XH'),
),
],
);
}
}
3、IndexedStack组件使用
import 'package:flutter/material.dart';
class DemoStack extends StatefulWidget {
@override
_DemoStackState createState() => _DemoStackState();
}
class _DemoStackState extends State<DemoStack> {
int index = 0;
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
IndexedStack(
index: index,
children: <Widget>[
Text('Hello Flutter'),
Text('Hello Dart'),
Text('Hello Golang'),
Text('Hello Python'),
],
),
RaisedButton(
child: Text('切换下一个'),
onPressed: () {
setState(() {
index = index + 1;
if (index >= 4) {
index = 0;
}
});
},
)
],
);
}
}

前一篇博客中已经说过Golang对Gzip的处理,其实这是我的服务器端的处理,那么当我们服务器返回Gzip压缩的字符串后,客户端如何进行解压呢?本文主要记录下JavaScript对Gzip进行压缩和解压处理。
在PHP中,对二维数组排序还是非常简单的,但是在Golang中对二位数据排序显的就稍显麻烦,但是我们还是可以通过结构体来进行排序,本文主要记录Golang如何通过结构体的多个字段来进行排序。
按钮在我们开发过程中是少不了的,本节将介绍Flutter常用的一些按钮组件,例如:TextButton、OutlinedButton、ElevatedButton
通过sudo命令,可以让普通用户在执行指定命令或程序上,拥有超级管理员的权限。并有针对性将不同的命令授予指定的普通用户,同时普通用户不需要知道root的密码就可以得到授权,授权的方式可以通过visudo配置管理。
快速生成表格
Electron页面跳转、浏览器打开链接和打开新窗口
在使用Git的过程中,不想每次都输入用户名和密码去拉取代码,所以就需要保存这些信息,那么既然有保存了,就必须有清除功能。
在Mac电脑中,如何对Git的用户名和密码进行修改呢?起初不懂Mac,所以整了很久,本文将记录如何对这个进行操作,以便后期使用。
Docker编译镜像出现:fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.12/main: temporary error (try again later)
WARNING: Ignoring APKINDEX.2c4ac24e.tar.gz: No such file or directory问题