一、创建一个子组件test2.dart
import 'package:flutter/material.dart';
//子组件
class Test2 extends StatefulWidget {
final changeColor; //定义一个接收变量
Test2({Key key, this.changeColor}) : super(key: key);
@override
_Test2State createState() => _Test2State();
}
class _Test2State extends State<Test2> {
@override
Widget build(BuildContext context) {
return RaisedButton(
child: Text("点击变色"),
onPressed: () {
var color = "red";
widget.changeColor(color);
},
);
}
}
二、创建一个父组件test.dart
import 'package:HHJ/pages/test2.dart';//引用子组件
import 'package:flutter/material.dart';
//父组件
class Test extends StatefulWidget {
Test({Key key}) : super(key: key);
@override
_TestState createState() => _TestState();
}
class _TestState extends State<Test> {
Color color = Colors.green; //默认绿色
//控制页面刷新
hangshu(value) {
setState(() {
color = Colors.red;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
alignment: Alignment.center,
width: 100,
height: 100,
color: color,
child: Test2(
changeColor: (res) => {hangshu(res)},
),
));
}
}