Flutter - 监听硬件按键。防止默认行为,android

Posted

技术标签:

【中文标题】Flutter - 监听硬件按键。防止默认行为,android【英文标题】:Flutter - listening to hardware keys. Preventing from default behavior, android 【发布时间】:2019-05-09 02:41:38 【问题描述】:

我想得到这个:听硬件键(例如音量键)但阻止它默认行为(例如我按音量键>我的应用程序对此做出反应>但音量应该 改变)。 这在 Java android 中很容易,但我无法在 FLutter 中停止此事件。 这是演示代码:

import 'package:flutter/material.dart';
import 'package:flutter/services.dart' as serv;

void main() => runApp(MaterialApp(home: MyApp()));



class MyApp extends StatelessWidget 

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) 
    serv.RawKeyboard.instance.addListener((serv.RawKeyEvent k)
      print(k);
    );
    return Scaffold(body: SafeArea(
      child: Text("TEST"),
    ),);
  

但是当我按下音量按钮时,音量也会改变。 如何阻止这种情况?

【问题讨论】:

***.com/questions/53042168/… 有什么解决办法??? 我没有通过使用 RawKeyboard.instance.addListener 获得音量键事件... @ChiragChopra 请检查我的回答:] 【参考方案1】:

好的,我找到了解决方案 https://api.flutter.dev/flutter/widgets/Shortcuts-class.html 有一个小部件ShortcutsActions 是通过硬件键发送的 Intent 的消费者。

【讨论】:

以上是关于Flutter - 监听硬件按键。防止默认行为,android的主要内容,如果未能解决你的问题,请参考以下文章

Vue中的事件修饰符,按键修饰符

[IOS] 监听音量变化监听音量按键及隐藏系统音量UI

如何监听状态属性变化 Flutter bloc 模式

IOS 软键盘搜索,下一个,确定等按键的点击事件监听

防止发生默认浏览器行为的通用函数

onBackPressed() 监听返回按键事件