我试图在抖动中实现背景滤镜,但这是行不通的。
ClipRect(
child:BackdropFilter(filter:ui.ImageFilter.blur(
sigmaX: 5.0,
sigmaY: 5.0,
),
child: Container(
child: (Image.file(
_image,
height: 400,
width: 400,
fit: BoxFit.cover,
)),
),
),
)
答案 0 :(得分:1)
您必须使用堆栈并将import React, { Component } from 'react'
import Axios from 'axios';
export default class ChatBox extends Component {
constructor(props) {
super(props);
const { rName, name } = this.props.match.params;
this.state = {
rName,
name,
message: ''
}
console.log('called');
}
componentDidMount(){
const {rName, name} = this.state;
this.ws = new EventSource(`http://localhost:1337/event-stream/?rName=${rName}&name=${name}`);
this.ws.onmessage = function (event) {
console.log('called');
}
}
handleInput = (event) => {
this.setState({
...this.state,
[event.target.name]: event.target.value
})
}
handleSubmit = (event) => {
event.preventDefault();
const { rName, name, message } = this.state;
Axios.post('http://localhost:1337/message', { rName, name, message });
}
render() {
return (
<div>
<form onSubmit={this.handleSubmit}>
<label>New Message</label>
<input type="text" name="message" onChange={this.handleInput} />
<button className="btn">Send</button>
</form>
</div>
)
}
}
放在要模糊的图像上方,否则可以使用ImageFilter
属性。
colorBlendMode:
带堆栈-
Container(
child: (Image.file(
_file,
height: 400,
colorBlendMode: BlendMode.overlay,
color: Colors.grey.withOpacity(0.5),
width: 400,
fit: BoxFit.cover,
)),
),
),
答案 1 :(得分:1)
只需将它们包装成一个堆栈并像这样设置图像后面容器的高度:
请注意,在下面的代码中,我模糊了除图像之外的整个屏幕。 您可以通过设置容器的大小来更改模糊部分的大小。
Stack(
children : [
BackdropFilter(
filter: ImageFilter.blur(
sigmaX: 5.0,
sigmaY: 5.0,
),
child: Container(
height: MediaQuery.of(context).size.height
color: Colors.white.withOpacity(0.4),
),
),
Container(
height: MediaQuery.of(context).size.height,
child: Center(
child: ClipRRect(
borderRadius: BorderRadius.circular(10.0),
child: Image.file(
_image,
height: 400,
width: 400,
fit: BoxFit.cover,
),
),
),
)
],)