网站后台管理系统下载,网址链接,wordpress覆盖水印,如何用wordpress查看搭建的站点在开发Android TV时#xff0c;遇到了一个需求#xff0c;需要对遥控器发出的上下左右按键点击事件做处理。此处我们可以在Modifier.onKeyEvent中对按键事件做处理。此处我写了一个按钮的modifier模板如下。
private val buttonModifier Modifier.onKeyEvent {when {KeyEve…在开发Android TV时遇到了一个需求需要对遥控器发出的上下左右按键点击事件做处理。此处我们可以在Modifier.onKeyEvent中对按键事件做处理。此处我写了一个按钮的modifier模板如下。
private val buttonModifier Modifier.onKeyEvent {when {KeyEventType.KeyDown it.type - {when (it.key) {Key.DirectionUp - trueKey.DirectionDown - trueelse - false}}else - false}
}
首先我们来看返回值。在这个模板中我对按钮接收到上下按键不做处理而这是通过返回true值实现的。返回的true表示该按键事件已被消费将不会再传递到下一级而false则会继续传递。此处我返回true可以使得焦点无法向上或向下传递相应的返回false将不会阻碍焦点传递。
其次是监听按键的类型。此处我对传入的KeyEvent的type和key两个值做了过滤前者包括KeyDown和KeyUp以及Unknown三个状态分别代表按下按键、抬起按键以及未知的按键事件后者则反映了具体点击的是什么按键。
后续可以引用这个模板并对其进行更进一步的定制。
Button(onClick { // button的点击事件 },modifier buttonModifier.onKeyEvent {when {KeyEventType.KeyDown it.type Key.DirectionRight it.key - {// 对向右按键的事件响应false}else - false}}
) {Text(text )
}