When I click the Elevated Button, the camera should be displayed on screen, but it is not. When I press the button I am calling the getImage() function to display the camera.
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
import 'package:logger/logger.dart';
class CreateScreen extends StatefulWidget {
const CreateScreen({super.key});
@override
State<CreateScreen> createState() => _CreateScreenState();
}
class _CreateScreenState extends State<CreateScreen> {
final Logger _logger = Logger();
bool _scanning = false;
XFile? _pickedImage;
String? response;
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: [
ElevatedButton(
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xFF165BAA),
elevation: 0,
),
onPressed: () async {
setState(() {
_scanning = true;
});
await getImage();
setState(() {
_scanning = false;
});
},
child: const Text(
'Pick image',
style: TextStyle(
color: Colors.white,
),
),
),
],
),
);
}
Future<void> getImage() async {
final pickedImage = await ImagePicker().pickImage(source: ImageSource.camera);
if (pickedImage != null) {
setState(() {
_pickedImage = pickedImage;
});
}
}
}
I added print statements to check if the function is called and it is.
I tried the code and it works perfectly. Ensure that you have added the necessary permissions in the
AndroidManifest.xmlfile for Android andInfo.plistfor iOS.For Android,
For iOS,
Also use try and catch .