做Android TV开发,需要用到一个功能,在界面上按 上,右,右三个键,开启...
发布网友
发布时间:2024-02-13 01:04
我来回答
共1个回答
热心网友
时间:2024-08-10 20:20
重新onKeyDown方法。
if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER||keyCode == KeyEvent.KEYCODE_ENTER) {
拦截中间键按下
}
keyCode == KeyEvent.KEYCODE_DPAD_UP
拦截上键按下
keyCode == KeyEvent.KEYCODE_DPAD_DOWN
拦截下键按下
keyCode == KeyEvent.KEYCODE_DPAD_LEFT
拦截左键按下
keyCode == KeyEvent.KEYCODE_DPAD_RIGHT
拦截右键按下
keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0
拦截返回键按下
当按下 上下两键时弹出一个popwindow来展示选集,这时弹出来的popwindwo没有焦点,所以在创建popwindow时就要给它设置获得焦 点 mSelectionsWindow.setFocusable(true);这样popwindow里的不管listview还是gridview都能用遥控器上下左右键控制了。
可是这时返回键失效了,不能退出了,因为焦点都在popwindow上了,给popwindow设置setBackgroundDrawable这样点击返回键时popwindow就会消失掉。
如果想让popwindow过个几秒钟自己消失,还要重新onKeyUp 扑捉按键抬起,在按键抬起时给handler发消息就能实现了。