Mne*_*oee 4 android screensaver dart flutter flutter-channel
我使用 Java 开发了 Android 应用程序,现在想迁移到Flutter。
为了检测用户不活动,我在 Activity 中重写此方法:onUserInteraction并重置 a Timer,如果没有用户交互,我会显示一个类似动画的屏幕保护程序。
Flutter 有没有干净的方法来做到这一点?我不想使用平台渠道。我想要纯粹的 Dart 和 flutter。我知道我可以设置计时器并在用户触摸时重置它,但就像在 Android 中一样,我希望系统通知我有关用户交互的信息。
您可以使用将您的包裹MaterialApp起来Listener。并重置交互计时器。与您在 Android 中所做的类似。
它只侦听诸如点击、拖动、然后释放或取消等手势。但是,它不会侦听鼠标事件,例如在不按任何按钮的情况下悬停在某个区域上。对于此类事件,请使用MouseRegion。
示例代码:
import 'package:flutter/material.dart';
final Color darkBlue = Color.fromARGB(255, 18, 32, 47);
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Listener(
onPointerDown: (_) => print('down'), // best place to reset timer imo
onPointerMove: (_) => print('move'),
onPointerUp: (_) => print('up'),
child: MaterialApp(
theme: ThemeData.dark().copyWith(scaffoldBackgroundColor: darkBlue),
debugShowCheckedModeBanner: false,
home: Scaffold(
body: Center(
child: MyWidget(),
),
),
),
);
}
}
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return TextFormField(
maxLength: 10,
maxLengthEnforced: true,
decoration: InputDecoration(
border: OutlineInputBorder(),
labelText: 'Details',
),
);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6689 次 |
| 最近记录: |