【发布时间】:2016-02-08 12:49:38
【问题描述】:
我在平板电脑中使用Master/Detail布局,左边几个按钮打开几个片段,其中一个片段包含youtube播放器。
问题,
当 youtube 播放器全屏时,我按下返回按钮,activity onBackPressed 被调用,整个 Activity 被关闭。
我尝试过的,
1- 为父片段(包含 Youtube 片段)添加 KeyListener 和点击返回按钮时的句柄,但只有当播放器不是全屏时才会调用此侦听器,否则不会调用,
rootView.setFocusableInTouchMode(true);
rootView.requestFocus();
rootView.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {
try {
// Close full screen
return true;
} catch (Exception e) {
AHHExceptionHandler.handleException(e);
}
}
return false;
}
});
2- youtubeFragment View 添加 onKeyListener 以检查是否全屏然后关闭全屏模式
youTubeFragment.getView().setFocusableInTouchMode(true);
youTubeFragment.getView().requestFocus();
youTubeFragment.getView().setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {
try {
youTubePlayer.setFullscreen(false);
return true;
} catch (Exception e) {
AHHExceptionHandler.handleException(e);
}
}
return false;
}
});
这也不是在所有情况下都调用。
当 youtube 播放器处于全屏状态、全屏模式关闭且应用程序处于之前的状态时,我需要处理硬件后退按钮。
谢谢。
编辑 1: - 我想在片段中处理这个,而不是在父 Activity 中处理它,我已经在父 Activity 中处理它,但我不喜欢这种解决方案。
【问题讨论】:
-
除了您在此处描述的内容或在 Activity onBackPressed 中添加特定于 youtube 的代码之外,您是否找到了解决方案?
-
不,我找不到其他解决方案
标签: android android-fragments youtube master-detail