Android studio 我们如何将布局放置在中心的颤振中
我想把卡片放在中间 这是密码Android studio 我们如何将布局放置在中心的颤振中,android-studio,flutter,layout,Android Studio,Flutter,Layout,我想把卡片放在中间 这是密码 class _HomeState extends State<Home>{ @override Widget build(BuildContext context) { var myActivity=["Join Meeting","Create Meeting", "Schedule Meeting","Yet to be decided"]; va
class _HomeState extends State<Home>{
@override
Widget build(BuildContext context) {
var myActivity=["Join Meeting","Create Meeting", "Schedule Meeting","Yet to be decided"];
var myGridView = new GridView.builder(
itemCount: myActivity.length,
gridDelegate: new SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2),
itemBuilder: (BuildContext context,int index) {
return new GestureDetector(
child: Card(
elevation: 5.0,
child: Container(
alignment: Alignment.center,
margin: EdgeInsets.only(top: 10.0, bottom: 10.0, left: 10.0),
child: Text(myActivity[index]),
),
),
onTap: () {
showDialog(
barrierDismissible: false,
context: context,
child: CupertinoAlertDialog(
content: Text(myActivity[index],),
actions: <Widget>[
FlatButton(
onPressed: () {
Navigator.of(context).pop();
},
child: Text("Ok"))
],
)
);
},
);
},
);
return Scaffold(
body: myGridView,
);
}
}
class\u HomeState扩展状态{
@凌驾
小部件构建(构建上下文){
var myActivity=[“加入会议”、“创建会议”、“安排会议”、“待定”];
var myGridView=new GridView.builder(
itemCount:myActivity.length,
gridDelegate:新SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount:2),
itemBuilder:(构建上下文,int索引){
返回新的手势检测器(
孩子:卡片(
标高:5.0,
子:容器(
对齐:对齐.center,
边距:仅限边集(顶部:10.0,底部:10.0,左侧:10.0),
子项:文本(myActivity[索引]),
),
),
onTap:(){
显示对话框(
禁止:错误,
上下文:上下文,
孩子:CupertinoAlertDialog(
内容:文本(myActivity[索引],),
行动:[
扁平按钮(
已按下:(){
Navigator.of(context.pop();
},
子项:文本(“确定”))
],
)
);
},
);
},
);
返回脚手架(
正文:myGridView,
);
}
}
要在屏幕中央显示GridView,只需将
myGridView
包装在center
小部件中,如下所示
return Scaffold(
body: Center(child: myGridView),
);
您还需要将GridView的
包覆面提取
参数设置为true。否则,gridView将占据整个屏幕,因此从视觉上看,Center
小部件将不会影响其位置。首先在Center
小部件内包装网格小部件需要做两件事&将gridView
属性设置为shrinkWrap:true,
@override
Widget build(BuildContext context) {
print("In Test Widget");
// TODO: implement build
var myActivity=["Join Meeting","Create Meeting", "Schedule Meeting","Yet to be decided"];
var myGridView = new GridView.builder(
itemCount: myActivity.length,
shrinkWrap: true,
gridDelegate: new SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2),
itemBuilder: (BuildContext context,int index) {
return new GestureDetector(
child: Card(
elevation: 5.0,
child: Container(
alignment: Alignment.center,
margin: EdgeInsets.only(top: 10.0, bottom: 10.0, left: 10.0),
child: Text(myActivity[index]),
),
),
onTap: () {
showDialog(
barrierDismissible: false,
context: context,
child: CupertinoAlertDialog(
content: Text(myActivity[index],),
actions: <Widget>[
FlatButton(
onPressed: () {
Navigator.of(context).pop();
},
child: Text("Ok"))
],
)
);
},
);
},
);
return Scaffold(
body: Center(child: myGridView),
);
}
@覆盖
小部件构建(构建上下文){
打印(“在测试小部件中”);
//TODO:实现构建
var myActivity=[“加入会议”、“创建会议”、“安排会议”、“待定”];
var myGridView=new GridView.builder(
itemCount:myActivity.length,
收缩膜:对,
gridDelegate:新SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount:2),
itemBuilder:(构建上下文,int索引){
返回新的手势检测器(
孩子:卡片(
标高:5.0,
子:容器(
对齐:对齐.center,
边距:仅限边集(顶部:10.0,底部:10.0,左侧:10.0),
子项:文本(myActivity[索引]),
),
),
onTap:(){
显示对话框(
禁止:错误,
上下文:上下文,
孩子:CupertinoAlertDialog(
内容:文本(myActivity[索引],),
行动:[
扁平按钮(
已按下:(){
Navigator.of(context.pop();
},
子项:文本(“确定”))
],
)
);
},
);
},
);
返回脚手架(
主体:中心(子对象:myGridView),
);
}
您可以使用行组件包装视图(卡),并将mainAxisAlignment属性设置为mainAxisAlignment.center如下所示
子项:行(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
卡片(
标高:5.0,
子:容器(
对齐:对齐.center,
边距:仅限边集(顶部:10.0,底部:10.0,左侧:10.0),
子项:文本(myActivity[索引]),
),
)
],
),
将布局包装在一列中(),并将MainAxisAlignment设置为中心
纵队(
mainAxisAlignment:mainAxisAlignment.center,
孩子:)
它也可以通过crossAxisAlignment水平居中。@vaibhavjain:你能接受这个答案吗,这样其他人会发现它很有用。
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Card(
elevation: 5.0,
child: Container(
alignment: Alignment.center,
margin: EdgeInsets.only(top: 10.0, bottom: 10.0, left: 10.0),
child: Text(myActivity[index]),
),
)
],
),