照片和视频合并为一个按钮。单击拍摄照片,然后长按录制。我想同时实现两种效果。我该怎么办?
lovekiesa 回答:Flutter如何实现:单击拍照并长按录制
GestureDetector
小部件可能是您需要的。它具有用于点按和长按的回调:https://api.flutter.dev/flutter/widgets/GestureDetector-class.html
您还可以使用InkWell小部件,它具有同时用于onTap
和onLongPress
的API。
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData.light(),home: Scaffold(
body: Center(
child: InkWell(
onTap: () => _takePicture(),onLongPress: () => _takeVideo(),child: Text('Click me'),),);
}
void _takePicture() => print('Taking a picture!');
void _takeVideo() => print('Taking a video!');
}
这是flutter.dev教程,介绍如何使用相机API。 https://flutter.dev/docs/cookbook/plugins/picture-using-camera
,您可以使用OutlineButton类,它具有按下和onLongPress方法。
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: OutlineButton(
onTap: () => takePicture(),onLongPress: () => takeVideo(),);
}
}