GetX 글중에 getter 를 사용하여 다른 파일에서 변수를 사용할 수 있는 방법에 대해 간단히 적어놨었다. 오늘은 ImagePicker를 사용하여 모바일의 사진 사용하는 방법에 대해 적어 보려고 한다.
라이브러리 설치 : https://pub.dev/packages/image_picker
File? _pickedImage;
File? get pickedImage => _pickedImage;
Future<File?> _pickImage() async {
final imagePicker = ImagePicker();
final pickedImageFile = await imagePicker.pickImage(
source: ImageSource.camera, imageQuality: 50, maxHeight: 150);
setState(() {
if (pickedImageFile != null) {
_pickedImage = File(pickedImageFile.path);
}
});
return _pickedImage;
}
내가 사용한 방법은 함수를 하나 만들어서 이 함수를 호출하게 되면 _pickedImage 를 리턴시켜 값을 맨위에 선언한 _pickedImage 변수에 담아 주도록 했음. 그리고 get 을 사용하여 다른곳에서 pickedImage를 쓸 수 있도록 함.
Widget _buildItem(context, index, animation) {
return ChatMessage(_chats[index], widget.name, pickedImage,
animation: animation);
}
위젯을 따로 만들어서 파라미터로 넘겨주려고 했음. ( 3번째 pickedImage )
CircleAvatar(
backgroundColor: Colors.blue,
backgroundImage: widget.pickedImage != null
? FileImage(widget.pickedImage!)
: null,
),
( StatefulWidget 에서 받은 파라미터 데이터를 사용하려면 widet.pickedImage 이런식으로 widget. 을 같이 사용해줘야함! )