( , , ).
, OnSystemUiChangeListener onInitializationSuccess YoutubePlayerSupportFragment ( YoutubePlayerFragment).
(View) getView().getParent().setOnSystemUiVisibilityChangeListener();
OnSystemUiChangeListener.
onSystemUiVisibilityChange() :
@Override
public void onSystemUiVisibilityChange(int visibility) {
if (visibility == View.SYSTEM_UI_FLAG_VISIBLE) {
scheduleNavigationBarHide();
}
else if (visibility == View.SYSTEM_UI_FLAG_HIDE_NAVIGATION || visibility == View.SYSTEM_UI_FLAG_LOW_PROFILE
|| visibility == View.SYSTEM_UI_FLAG_FULLSCREEN) {
if (navigationBarHandler != null) {
navigationBarHandler.cancel();
navigationBarHandler.purge();
navigationBarHandler = null;
}
}
}
NavigationBarHide().
private void scheduleNavigationBarHide() {
if (navigationBarHandler != null) {
Log.d(TAG, "Canceling navigationBarHandler.");
navigationBarHandler.cancel();
navigationBarHandler.purge();
navigationBarHandler = null;
}
if (mContext != null && mContext instanceof JadooTVActivity) {
navigationBarHandler = new Timer();
navigationBarHandler.schedule(new TimerTask() {
public void run() {
((JadooTVActivity) mContext).runOnUiThread(new Runnable() {
@Override
public void run() {
if (!isPlayerSqueezed) {
hideAsImmersiveNavigationBar(Config.context);
}
else {
Utils.showNavigationBar(Config.context);
}
}
});
}
}, 500);
}
}
, , hideAsImmersiveNavigationBar(), , Navigation Bar .
private void hideAsImmersiveNavigationBar(Activity activity) {
if(activity != null)
{ View decorView = activity.getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE;
decorView.setSystemUiVisibility(uiOptions);
}
}
, , Navigation Bar. int uiOptions = View.SYSTEM_UI_FLAG_VISIBLE | View.SYSTEM_UI_FLAG_FULLSCREEN;
, : , , , . , , . Immersive API 19, - , API 21. . /, Navigation Bar 1 , .