我正在webView中显示视频,我注意到Kindle设备的特定行为。首先,您必须滑出设备按钮(在Kindle Fire HD上),这将显示视频的视频控件。控件启动时按后退按钮将首先隐藏视频控件。然后你必须再次按下后退按钮才能关闭视图。即使在控件启动时,我一直试图在第一次背压时忽略该视图。我遇到的冲突是,当控件启动时,我无法捕获第一个后退按钮。一旦控件消失了,我按下后退按钮显示在我的@Override onBackPressed()或下面的dispatchKeyEvent()我添加试图解决这个问题。
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
int action = event.getAction();
int keyCode = event.getKeyCode();
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
if (action == KeyEvent.ACTION_DOWN) {
// TODO
finish();
}
return true;
default:
return super.dispatchKeyEvent(event);
}
}
按两次后退按钮(控件消失后)将注册keyEvent。但你还是要按两次。有没有其他人遇到过这场冲突和/或你知道修复吗?我添加了dispatchkeyEvent()和onBackPressed(),因为我希望dispatchKeyEvent()能够捕获第一个后退,然后onBackPressed()将捕获第二个OR dispatchKeyEvent()将捕获两者。第一次背压时,控件启动时我什么都没得到。提前谢谢!
答案 0 :(得分:1)
ACTION_DOWN
将为您提供层次结构中的下一个可用子操作。但是,我认为您的意思是ACTION_UP
,它会将您带到父屏幕。您还应该尝试在finish()
语句之前添加if
。