Dart 如何仅呈现一个小部件集合状态
我有两个简单的基础,一个是工作,第二个需要一些解释。 所以,当我点击示例一中的按钮时,它工作并设置Taet呈现页面 第二个示例我使用了一个具有setState of Button的body函数。当我点击按钮时,即使使用setState注释,也不会发生任何事情,如果 括号内的变量不呈现。 当我在类中创建变量实例时,它工作得很好,但我只需要渲染一个按钮。如何 完整代码示例一Dart 如何仅呈现一个小部件集合状态,dart,flutter,flutter-layout,flutter-test,Dart,Flutter,Flutter Layout,Flutter Test,我有两个简单的基础,一个是工作,第二个需要一些解释。 所以,当我点击示例一中的按钮时,它工作并设置Taet呈现页面 第二个示例我使用了一个具有setState of Button的body函数。当我点击按钮时,即使使用setState注释,也不会发生任何事情,如果 括号内的变量不呈现。 当我在类中创建变量实例时,它工作得很好,但我只需要渲染一个按钮。如何 完整代码示例一 import 'package:flutter/material.dart'; main() => runApp(Ma
import 'package:flutter/material.dart';
main() => runApp(MaterialApp(
home: Home(),
));
class Home extends StatefulWidget {
@override
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> {
bool istrue = false;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Works fine'),),
body: Center(child: body()),
);
}
Widget body() {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
RaisedButton(
onPressed: () {
setState(() {
istrue = !istrue;
});
},
child: Text('Click me'),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(istrue ? 'Boo!' : ''),
),
],
);
}
}
导入“包装:颤振/材料.省道”;
main()=>runApp(MaterialApp(
home:home(),
));
类Home扩展了StatefulWidget{
@凌驾
_HomeState createState()=>\u HomeState();
}
类(HomeState扩展状态){
布尔istrue=假;
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(标题:Text('worksfine'),),
主体:中心(子对象:主体()),
);
}
小部件主体(){
返回列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
升起的按钮(
已按下:(){
设置状态(){
istrue=!istrue;
});
},
子:文本(“单击我”),
),
填充物(
填充:常数边集全部(8.0),
孩子:文本(是真的吗?'Boo!':“”),
),
],
);
}
}
完整代码示例二
import 'package:flutter/material.dart';
main() => runApp(MaterialApp(
home: Home(),
));
class Home extends StatefulWidget {
@override
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> {
bool istrue = false;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Works fine'),),
body: Center(child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
body(),body(),
],
)),
);
}
Widget body() {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
RaisedButton(
onPressed: () {
setState(() {
istrue = !istrue;
});
},
child: Text('Click me'),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(istrue ? 'Boo!' : ''),
),
],
);
}
}
导入“包装:颤振/材料.省道”;
main()=>runApp(MaterialApp(
home:home(),
));
类Home扩展了StatefulWidget{
@凌驾
_HomeState createState()=>\u HomeState();
}
类(HomeState扩展状态){
布尔istrue=假;
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(标题:Text('worksfine'),),
主体:中心(子项:列)(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
body(),body(),
],
)),
);
}
小部件主体(){
返回列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
升起的按钮(
已按下:(){
设置状态(){
istrue=!istrue;
});
},
子:文本(“单击我”),
),
填充物(
填充:常数边集全部(8.0),
孩子:文本(是真的吗?'Boo!':“”),
),
],
);
}
}
感谢天空。我理解你的问题有点困难,但我也明白英语不是你的第一语言。您似乎在问,“如何仅渲染一个按钮,例如#2?”。如果这不是你的问题,请告诉我,以便我和其他人能够帮助你 这将只渲染一个按钮
import 'package:flutter/material.dart';
main() => runApp(MaterialApp(
home: Home(),
));
class Home extends StatefulWidget {
@override
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> {
bool istrue = false;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Works fine'),),
body: Center(child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
RaisedButton(
onPressed: () {
setState(() {
istrue = !istrue;
});
},
child: Text('Click me'),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(istrue ? 'Boo!' : ''),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(istrue ? 'Boo!' : ''),
),
],
)),
);
}
}
导入“包装:颤振/材料.省道”;
main()=>runApp(MaterialApp(
home:home(),
));
类Home扩展了StatefulWidget{
@凌驾
_HomeState createState()=>\u HomeState();
}
类(HomeState扩展状态){
布尔istrue=假;
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(标题:Text('worksfine'),),
主体:中心(子项:列)(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
升起的按钮(
已按下:(){
设置状态(){
istrue=!istrue;
});
},
子:文本(“单击我”),
),
填充物(
填充:常数边集全部(8.0),
孩子:文本(是真的吗?'Boo!':“”),
),
填充物(
填充:常数边集全部(8.0),
孩子:文本(是真的吗?'Boo!':“”),
),
],
)),
);
}
}
在第二个示例中,您正在调用Scaffold小部件中另一个列小部件中的列小部件。你为什么要那样做?有许多方法可以在颤振API中构造该布局
不能有新列(新列(…)代码>它的冗余
编辑:
我在颤振网站上找到了这个:
Column小部件不会滚动(,通常认为列中的子项多于可用房间中的子项是错误的。如果您有一行小部件并希望它们在没有足够空间时滚动,请考虑使用ListVIEW。
你的两个例子对我都有用!这两个例子都很好,但我只需要渲染一个按钮。