面试题答案
一键面试- 导入依赖
在
pubspec.yaml
文件中添加flutter_platform_widgets
依赖,用于简化跨平台开发:
dependencies:
flutter_platform_widgets: ^x.x.x
然后运行 flutter pub get
安装依赖。
- 使用
PlatformWidget
进行适配
import 'package:flutter/material.dart';
import 'package:flutter_platform_widgets/flutter_platform_widgets.dart';
class TapExample extends StatelessWidget {
@override
Widget build(BuildContext context) {
return PlatformWidget(
androidBuilder: (context, _) => _buildAndroidTap(context),
iosBuilder: (context, _) => _buildIosTap(context),
);
}
Widget _buildAndroidTap(BuildContext context) {
return GestureDetector(
onTap: () {
// Android 平台上点击操作的反馈逻辑
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('Android 点击反馈')),
);
},
child: const Text('点击我 (Android)'),
);
}
Widget _buildIosTap(BuildContext context) {
return GestureDetector(
onTap: () {
// iOS 平台上点击操作的反馈逻辑
showDialog(
context: context,
builder: (context) => AlertDialog(
title: const Text('iOS 点击反馈'),
content: const Text('你在 iOS 上点击了我'),
actions: [
TextButton(
onPressed: () => Navigator.pop(context),
child: const Text('确定'),
),
],
),
);
},
child: const Text('点击我 (iOS)'),
);
}
}
在上述代码中:
- 通过
PlatformWidget
来区分 Android 和 iOS 平台。 androidBuilder
中定义了 Android 平台上的点击手势操作及反馈,这里是通过SnackBar
来展示反馈。iosBuilder
中定义了 iOS 平台上的点击手势操作及反馈,这里是通过AlertDialog
来展示反馈。