直接上代码
StreamController<String> _streamController = StreamController();//创建流Stream 控制器
@override //重写方法,销毁流式通道
void dispose() {
//销毁
_streamController.close();
super.dispose();
}
//接收消息
StreamBuilder<String>()
//初始值
initialData: _background,
//绑定Stream
stream: _streamController.stream,
//发送消息
_streamController.add(_background);
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutterapp/constant/image_path.dart';
class RoomPage extends StatefulWidget {
@override
RoomPageState createState() => RoomPageState();
}
class RoomPageState extends State<RoomPage> {
var _background = ImagePath.background3;
//流Stream 控制器
StreamController<String> _streamController = StreamController();
@override
void dispose() {
//销毁
_streamController.close();
super.dispose();
}
@override
Widget build(BuildContext context) {
var _background = ImagePath.background3;
return Scaffold(
body: Container(
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height,
//接收消息
child: StreamBuilder<String>(
//初始值
initialData: _background,
//绑定Stream
stream: _streamController.stream,
builder: (BuildContext context, AsyncSnapshot<String> snapshot) {
return Container(
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height,
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage(_background),
fit: BoxFit.fill //图像完全填充父容器
),
),
child: FlatButton(
onPressed: () {
_background = ImagePath.background5;
print('运行');
//发送消息
_streamController.add(_background);
},
child: Text('text'),
));
},
)
)
);
}
}