- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我喜欢 FadeInImage
我能做到
child: FadeInImage.assetNetwork(
image: 'https://placeimg.com/640/480/any',
placeholder: 'assets/images/loading.gif',
),
我想在 BoxDecoration
中使用 FadeInImage
,如下所示。
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8.0),
image: DecorationImage(
image: FadeInImage.assetNetwork(
'${document['image']}'),
fit: BoxFit.cover,
),
),
我收到这个错误:
不能将参数类型“FadeInImage”分配给参数类型“ImageProvider”
我该怎么做?
用例
在轮播中,在网络加载图像进入之前放置占位符
这是我的轮播小部件(我正在使用 Flutter 的 carousel_slider
包)
Widget _carouselSlider(BuildContext context) {
return StreamBuilder<QuerySnapshot>(
stream: Firestore.instance.collection('events').snapshots(),
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (snapshot.hasError) return new Text('Error: ${snapshot.error}');
switch (snapshot.connectionState) {
case ConnectionState.waiting:
return new Text('Loading...');
default:
return CarouselSlider(
height: 150.0,
enlargeCenterPage: true,
enableInfiniteScroll: false,
items: snapshot.data.documents.map((DocumentSnapshot document) {
print('Listing the documents: $document');
return Builder(
builder: (BuildContext context) {
return GestureDetector(
onTap: () {
print('I am clicked');
Navigator.pushNamed(context, '/detail');
},
child: Container(
width: MediaQuery.of(context).size.width,
margin: EdgeInsets.only(
left: 5.0, right: 5.0, bottom: 20.0),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8.0),
image: DecorationImage(
image: NetworkImage('${document['image']}'),
fit: BoxFit.cover,
),
),
child: Center(
child: Text(
'${document['name']}',
style: TextStyle(fontSize: 16.0),
),
),
),
);
},
);
}).toList(),
);
}
},
);
}
所以,对于这部分
image: DecorationImage(
image: NetworkImage('${document['image']}'),
fit: BoxFit.cover,
),
我希望有一个占位符方法,而不是在网络加载图像到达之前只有文本。
最佳答案
这是代码。
class _HomePageState extends State<HomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: Center(
child: FutureBuilder<bool>(
future: _myFuture(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.hasData) return _yourWidget();
return CircularProgressIndicator();
},
)),
);
}
Widget _yourWidget() {
return Stack(
children: <Widget>[
Center(
child: FadeInImage(
width: 300,
height: 300,
placeholder: AssetImage(chocolateImage),
image: NetworkImage(poolImageUrl),
fit: BoxFit.cover,
),
),
Center(child: Text('Pool', style: TextStyle(fontSize: 36.0, color: Colors.white, fontWeight: FontWeight.bold))),
],
);
}
Future<bool> _myFuture() async {
await Future.delayed(Duration(milliseconds: 10500));
return true;
}
}
关于flutter - BoxDecoration 中的 FadeInImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56367022/
我喜欢 FadeInImage 我可以做这个 child: FadeInImage.assetNetwork( image: 'https://placeimg.com/640/480/any
我喜欢 FadeInImage 我能做到 child: FadeInImage.assetNetwork( image: 'https://placeimg.com/640/480/any',
我想将以下容器添加到 ListView,但该容器没有将添加的图像大小作为装饰。如果我将图像添加为容器的子项,它工作正常,但我也想在图像顶部显示文本。 var imageListView = new L
我想创建一个像 CircleAvatar 这样的小部件,当它溢出时会剪辑它的 child (CircleAvatar 只剪辑图像,而不是它的 child )。我可以强制 BoxDecoration 剪
我知道 ClipRRect 有额外的选项,比如自定义剪辑器。但是如果我只需要一个简单的边界半径,会有什么性能差异吗?哪个比较推荐? 最佳答案 如果您的目标是创建圆形边框,则必须仅在最后一种情况下使用剪
我有以下代码片段,我想让图像褪色,这样它就不会干扰容器中的其他项目。有没有过滤器可以做到这一点? child: new Card( child: new Container( decora
我试图在 TabBar 中实现边距,但我没有找到任何东西。所以我的想法是在indicator参数中对TabBar的BoxDecoration做一个margin。 这就是我想要的: 这是我的: 我的实现
我想在 BoxDecoration 中显示网络的图像。但它显示错误 "The argument type 'image' can't be assigned to the parameter type
我有一个 Flutter Container 小部件,我为它定义了一种颜色(粉红色),但由于某种原因,BoxDecoration 中的颜色覆盖了它(绿色)。为什么? new Container(
我有一个 Widget,可以为公交车站构建圆形个人资料图片,现在它在个人资料图片周围有一个圆形边框,就像这样。我想将圆形边框更改为虚线,并通过以虚线形式围绕个人资料图片盘旋/旋转来设置动画。有没有简单
我是一名优秀的程序员,十分优秀!