隐藏ICS返回主页任务切换器按钮

rus*_*elf 28 android fullscreen android-4.0-ice-cream-sandwich

只是想知道如何以编程方式隐藏ICS back/home/etc软件按钮.就像Youtube应用在播放视频时所做的那样.我想在播放视频时隐藏它们,但是如果用户点击屏幕则将其隐藏起来.

我似乎无法在网络上或Google的文档中找到它.

Jer*_*gan 31

pinxue是现货......你想要SYSTEM_UI_FLAG_HIDE_NAVIGATION.例:

myView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
Run Code Online (Sandbox Code Playgroud)

但有一点需要注意的是,在任何(我的意思是任何)用户交互时,将重新显示导航栏.

使用Honeycomb,您可以获得的最接近的是"熄灯"模式(现在称为"低调"...... SYSTEM_UI_FLAG_LOW_PROFILE).这只会使导航栏上的项目不太明显(您可能看到的小"点").如果你想尽力保持与Honeycomb的向后兼容性,你可以使用反射来使用"最佳"方法:

// Ask the System Bar to hide
int whichHiddenStatusToUse = android.view.View.STATUS_BAR_HIDDEN;
try {
    // if this next line doesn't thrown an exception then we are on ICS or  
    // above, so we can use the new field.
    whichHiddenStatusToUse = View.class.getDeclaredField("SYSTEM_UI_FLAG_HIDE_NAVIGATION").getInt(mDrawingSurface);
} catch (Exception ex) {
}
// now lets actually ask one of our views to request the decreased visibility
myView.setSystemUiVisibility(whichHiddenStatusToUse);
Run Code Online (Sandbox Code Playgroud)

  • 答案很棒.虽然,我会尽可能避免反思.因为它很丑 - 像往常一样.我只是检查当前的平台版本并使用其中一个常量.例如if(Build.VERSION.SDK_INT> = Build.VERSION_CODES.ICE_CREAM_SANDWICH){...} (7认同)

小智 23

尝试使用标志SYSTEM_UI_FLAG_HIDE_NAVIGATION设置全屏窗口


reo*_*eor 6

你想要SYSTEM_UI_FLAG_HIDE_NAVIGATION.

此标志是从Ice Cream Sandwich,API 14 添加的.在14之前,在Honeycomb,API 11中添加了一个标志STATUS_BAR_HIDDEN.之前,软导航按钮不存在,因此全屏模式完全由主题处理(特别是主题) .NoTitleBar.Fullscreen).

使用:

if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH )
    mBaseLayout.setSystemUiVisibility( View.SYSTEM_UI_FLAG_HIDE_NAVIGATION );
else if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB )
    mBaseLayout.setSystemUiVisibility( View.STATUS_BAR_HIDDEN );
Run Code Online (Sandbox Code Playgroud)