amap_map/example/lib/pages/interactive/map_gestures_options.dart

115 lines
3.1 KiB
Dart
Raw Normal View History

2023-12-22 21:23:24 +08:00
import 'package:amap_map/amap_map.dart';
import 'package:amap_map_example/widgets/amap_gridview.dart';
import 'package:amap_map_example/widgets/amap_switch_button.dart';
import 'package:flutter/material.dart';
2023-12-30 07:54:59 +08:00
class GesturesDemoPage extends StatefulWidget {
GesturesDemoPage({Key? key}) : super(key: key);
2023-12-22 21:23:24 +08:00
@override
_BodyState createState() => _BodyState();
}
2023-12-30 07:54:59 +08:00
class _BodyState extends State<GesturesDemoPage> {
2023-12-22 21:23:24 +08:00
///是否支持缩放手势
bool _zoomGesturesEnabled = true;
///是否支持滑动手势
bool _scrollGesturesEnabled = true;
///是否支持旋转手势
bool _rotateGesturesEnabled = true;
///是否支持倾斜手势
bool _tiltGesturesEnabled = true;
@override
Widget build(BuildContext context) {
final AMapWidget map = AMapWidget(
rotateGesturesEnabled: _rotateGesturesEnabled,
scrollGesturesEnabled: _scrollGesturesEnabled,
tiltGesturesEnabled: _tiltGesturesEnabled,
zoomGesturesEnabled: _zoomGesturesEnabled,
);
//手势开关
final List<Widget> gesturesOptions = [
AMapSwitchButton(
label: Text('旋转'),
defaultValue: _rotateGesturesEnabled,
onSwitchChanged: (value) => {
setState(() {
_rotateGesturesEnabled = value;
})
},
),
AMapSwitchButton(
label: Text('滑动'),
defaultValue: _scrollGesturesEnabled,
onSwitchChanged: (value) => {
setState(() {
_scrollGesturesEnabled = value;
})
},
),
AMapSwitchButton(
label: Text('倾斜'),
defaultValue: _tiltGesturesEnabled,
onSwitchChanged: (value) => {
setState(() {
_tiltGesturesEnabled = value;
})
},
),
AMapSwitchButton(
label: Text('缩放'),
defaultValue: _zoomGesturesEnabled,
onSwitchChanged: (value) => {
setState(() {
_zoomGesturesEnabled = value;
})
},
),
];
Widget _gesturesOptiosWeidget() {
return Container(
padding: EdgeInsets.all(5),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Text('手势控制', style: TextStyle(fontWeight: FontWeight.w600)),
Container(
padding: EdgeInsets.only(left: 10),
child: AMapGradView(childrenWidgets: gesturesOptions),
),
],
),
);
}
return Container(
height: MediaQuery.of(context).size.height,
width: MediaQuery.of(context).size.width,
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Container(
height: MediaQuery.of(context).size.height * 0.6,
width: MediaQuery.of(context).size.width,
child: map,
),
Expanded(
child: SingleChildScrollView(
child: Container(
child: _gesturesOptiosWeidget(),
),
),
),
],
),
);
}
}