Android 媒体控制器上用于从 webView 播放的视频的后退按钮
Android back button on media controller for videos played from webView
我在 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。但是您仍然必须按两次。是否有其他人 运行 卷入此冲突 and/or 您知道解决方法吗?我添加了 dispatchkeyEvent() 和 onBackPressed() 因为我希望 dispatchKeyEvent() 会捕捉到第一个后退按键,然后 onBackPressed() 会捕捉到第二个或 dispatchKeyEvent() 会捕捉到两个。当控件准备好进行第一次向后按压时,我什么也没得到。提前致谢!
ACTION_DOWN
将为您提供层次结构中的下一个可用子操作。但是,我认为您的意思是 ACTION_UP
,它会将您带到父屏幕。您还应该尝试将 finish()
放在 if
语句之前。
我在 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。但是您仍然必须按两次。是否有其他人 运行 卷入此冲突 and/or 您知道解决方法吗?我添加了 dispatchkeyEvent() 和 onBackPressed() 因为我希望 dispatchKeyEvent() 会捕捉到第一个后退按键,然后 onBackPressed() 会捕捉到第二个或 dispatchKeyEvent() 会捕捉到两个。当控件准备好进行第一次向后按压时,我什么也没得到。提前致谢!
ACTION_DOWN
将为您提供层次结构中的下一个可用子操作。但是,我认为您的意思是 ACTION_UP
,它会将您带到父屏幕。您还应该尝试将 finish()
放在 if
语句之前。