我在 Flutter 中有一行有两个小部件。我试图将第一个小部件保持在屏幕中间居中,而第二个小部件强制位于屏幕的最右侧。
我试过使用 Spacer()。这会导致应用返回空白屏幕。
我也试过使用 Expanded。这会将第二个小部件完全从屏幕上发送出去。
尝试 mainAxisAlignment: MainAxisAlignment.spaceBetween 似乎没有任何效果。
@override
Widget build(BuildContext context) {
return new Container(
height: MediaQuery.of(context).size.height,
child: SingleChildScrollView(
child: new Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisSize: MainAxisSize.max,
children: <Widget>[
new Container(
child: new GestureDetector(
onTap: () {
FocusScope.of(context).requestFocus(new FocusNode());
},
child: Column(
children: <Widget>[
SizedBox(height: 40.0),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new Column(
children: <Widget>[
new Container(
child: Row(
mainAxisAlignment:MainAxisAlignment.spaceBetween,
children: <Widget>[
Container(),
Container(
child: Text(
'Profile',
textAlign: TextAlign.center,
style: TextStyle(
fontFamily: 'Lato',
color: Colors.white,
fontSize: 50.0, …Run Code Online (Sandbox Code Playgroud) 我试图在 Flutter 中的 onPressed 上调用一个函数。
我试过了
onPressed: (){
_showDialog;
},
Run Code Online (Sandbox Code Playgroud)
和
onPressed: _showDialog,
Run Code Online (Sandbox Code Playgroud)
和
onPressed: () => _showDialog,
Run Code Online (Sandbox Code Playgroud)
这是我的职能。
void _showDialog() {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text("Title"),
content: Text("Body"),
actions: <Widget>[
FlatButton(
child: Text("Close"),
onPressed: () {
Navigator.of(context).pop();
},
),
],
);
},
);
}
Run Code Online (Sandbox Code Playgroud)
我不断收到“无效的常数值”。
编辑:
这是我调用 onPressed 的地方:
secondary: const IconButton(
icon: Icon(Icons.domain),
onPressed: (){
_showDialog();
},
),
Run Code Online (Sandbox Code Playgroud)
更新:
@override
Widget build(BuildContext context) {
return new Container(
height: MediaQuery.of(context).size.height,
child: SingleChildScrollView(
child: new Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisSize: MainAxisSize.max,
children: <Widget>[
new Container(
height: 220.0,
width: MediaQuery.of(context).size.width,
child: new GestureDetector(
onTap: () {
FocusScope.of(context).requestFocus(new FocusNode());
},
child: Column(
children: <Widget>[
SizedBox(height: 40.0),
Row(
children: <Widget>[
Expanded(
child: Stack(
children: [
Center(
child: Text(
'Profile',
textAlign: TextAlign.center,
style: TextStyle(
fontFamily: 'Lato',
color: Colors.white,
fontSize: 50.0,
fontWeight: FontWeight.w700,
),
),
),
Positioned(
right: 8,
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: …Run Code Online (Sandbox Code Playgroud)