_genImage()返回null 不是视频中的那个问题!
来源:6-16 拍照APP开发-图片获取与图片展示【实战尝鲜】

月风
2019-06-28
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
import 'dart:io';
class PhotoApp extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<PhotoApp> {
List<File> _images;
Future getImage(bool isTakePhoto) async {
Navigator.pop(context);
var image = await ImagePicker.pickImage(source: isTakePhoto?ImageSource.camera:ImageSource.gallery);
setState(() {
if(image!=null){
_images.add(image);
}
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Image Picker Example'),
),
body: Center(
child: Wrap(
spacing: 5,
runSpacing: 5,
children: _genImage(),
)
),
floatingActionButton: FloatingActionButton(
onPressed: _pickImage,
tooltip: '选择图片',
child: Icon(Icons.add_a_photo),
),
);
}
_pickImage(){
showModalBottomSheet(context: context,builder: (context)=>Container(
height: 160,
child: Column(
children: <Widget>[
_item('拍照',true),
_item('从相册选择',false)
],
),
));
}
_item(String title, bool isTakePhoto){
return GestureDetector(
child: ListTile(
leading: Icon(isTakePhoto?Icons.camera_alt:Icons.photo),
title: Text(title),
onTap: ()=>getImage(isTakePhoto),
),
);
}
_genImage(){
return _images.map((file){
return Stack(
children: <Widget>[
ClipRRect(
borderRadius: BorderRadius.circular(5),
child: Image.file(file,width: 120,height: 90,fit:BoxFit.fill),
),
Positioned(
right: 5,
left: 5,
child: GestureDetector(
onTap: (){
setState(() {
_images.remove(file);
});
},
child: ClipOval(
child: Container(
padding: EdgeInsets.all(3),
decoration: BoxDecoration(color: Colors.black45),
child: Icon(Icons.close,size:18,color: Colors.white),
),
),
),
)
],
);
}).toList();
}
}
写回答
2回答
-
List<File> _images没有初始化导致的
112019-06-29 -
网络首席管理监察官
2019-07-10
瞅瞅看我也遇到了
10
相似问题