随着游戏在Android 4.4的全屏沉浸模式下运行,用户从屏幕边缘滑动以显示通知/状态栏和菜单按钮栏
然而,这些滑动也作为向下滑动传递到下面的游戏
是否有一种官方/干净的方式来忽略那些滑动而不是硬编码屏幕上的特定屏幕来忽略滑动?
我已经改进了Android Studio的Navigation Drawer Activity项目模板,该模板使用Toolbar,v7.app.ActionBarDrawerToggle和NavigationView而不是NavigationDrawerFragment(以及layout/fragment_navigation_drawer.xml).
它完美地工作.然后,我走得更远.我的导航抽屉项目处于沉浸式粘性(全屏)模式.
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
View decorationView = getWindow().getDecorView();
decorationView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
...
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
drawerToggle = new ActionBarDrawerToggle(
this,
drawerLayout,
R.string.navigation_drawer_open, /* "open drawer" description for accessibility */
R.string.navigation_drawer_close /* "close drawer" …Run Code Online (Sandbox Code Playgroud) android android-fullscreen navigation-drawer android-navigationview
我正在制作一个简单的游戏,到目前为止我一直在使用空白活动.现在我希望它覆盖整个屏幕,我是否需要使用FullScreen活动重新编码整个内容?我试过在网上找东西,但我遇到的每件事都添加了这个:
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
Run Code Online (Sandbox Code Playgroud)
这导致应用程序在设备上启动后立即崩溃.如果有人能告诉我我的错误,那么请.
这是logcat输出的链接以及游戏代码
我想实现一个按钮来启用/禁用沉浸式全屏模式.我正在使用这些方法,但showSystemUI只能快速显示并再次隐藏...
如何完全退出沉浸式模式?
我的方法:
// This snippet hides the system bars.
@SuppressLint("NewApi")
private void hideSystemUI() {
try{
// Set the IMMERSIVE flag.
// Set the content to appear under the system bars so that the content
// doesn't resize when the system bars hide and show.
mDecorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
| View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
| View.SYSTEM_UI_FLAG_IMMERSIVE);
}catch(Exception e){
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
}
// This snippet shows the system bars. It does …Run Code Online (Sandbox Code Playgroud) 我曾经SystemChrome.setEnabledSystemUIOverlays([]);让我的 Flutter 应用程序全屏显示。
状态栏永远消失了,但我在导航栏曾经所在的底部得到了这个空白区域。
android-fullscreen flutter android-navigation-bar flutter-layout
我想在屏幕上绘制一个(鼠标指针)图标,而不是服务中的其他应用程序.我已经实现了功能,除了导航栏,我可以在屏幕上绘图.我研究过一些 其他 的问题在这里和尝试TYPE_SYSTEM_OVERLAY,TYPE_TOAST,TYPE_SYSTEM_ERROR和一些其他的窗口类型没有成功.
我不是想捕捉焦点,只是在屏幕上画一两秒钟.当我尝试绘制导航栏时,它只是在下面(实际上,RelativeLayout在导航栏的边界上结束 - 即使我指定高度的手动尺寸).下面的屏幕截图显示了屏幕右下方的手形指针.这是我可以定位的最低点.请注意,我不是要在我的应用程序中隐藏导航栏 - 试图绘制其他应用程序.

我甚至尝试在实例中设置xpos和ypos偏移设置WindowManager.LayoutParams,但这只是偏移布局并仍然在导航栏下方).
我用来显示这个窗口的布局参数:
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN |
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
PixelFormat.TRANSPARENT);
Run Code Online (Sandbox Code Playgroud)
然后我将RelativeLayout这些参数添加到WindowManager:windowManager.addView(relativeLayout, params);
我正在使用带有角度材料前端的cordova开发一个跨平台应用程序.
我在md-card列表中使用HTML5视频标签来播放带有外部网址的视频.内联时视频播放正确,并按预期显示本机控件.
<video class="project-video" video-directive item="$ctrl.project" ng-src="{{$ctrl.project.videoUrl | trustUrl}}" preload="auto"
controls poster="{{$ctrl.project.video.thumbnail_url}}">
Your browser does not support the video tag.
</video>
Run Code Online (Sandbox Code Playgroud)
但是,当我单击"切换全屏"按钮时,视频会进入全屏,但默认控件会消失.在此之后我无法回到应用程序 - 本机安卓后退按钮不会关闭整个屏幕 - 而是关闭整个应用程序.
我正在寻找的解决方案将使控件始终显示在全屏模式下; 这可以解决在iOS上运行相同代码的框.
因此,我不想花时间为Android开发我自己的自定义视频控件,如果我可以帮助它!因此,请不要发布关于如何做到这一点的答案(SO和其他地方已有很多).
我正在使用魅族m2注意Android设备.
谢谢!
编辑:
控件仍在那里,但在css的阴影DOM树中显示为大小为0 x 0px.即使我使用!important标志在chrome dev工具中更改它们的大小,它们也不会显示出来.
有任何想法吗?
android html5-video cordova android-fullscreen html5-fullscreen
我一直在与setSystemUiVisibility()斗争,试图隐藏一段时间的软导航按钮(对于视频播放器).它似乎不像宣传的那样工作.这是我的代码,在可见的内部FrameLayout.
void setNavVisibility(boolean visible)
{
int newVis = SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
if (!visible)
{
newVis |= SYSTEM_UI_FLAG_LOW_PROFILE | SYSTEM_UI_FLAG_HIDE_NAVIGATION;
}
setSystemUiVisibility(newVis);
}
Run Code Online (Sandbox Code Playgroud)
从SDK示例稍加修改:
void setNavVisibility(boolean visible) {
int newVis = SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| SYSTEM_UI_FLAG_LAYOUT_STABLE;
if (!visible) {
newVis |= SYSTEM_UI_FLAG_LOW_PROFILE | SYSTEM_UI_FLAG_FULLSCREEN
| SYSTEM_UI_FLAG_HIDE_NAVIGATION;
}
Run Code Online (Sandbox Code Playgroud)
打电话时也不做任何事.当我从另一个人那里打电话给我时,我取得了一些成功View,但是文档没有提到View你的来电有什么影响?我认为文档(惊喜)在这里有点缺乏.有谁知道真正发生了什么?
我想创建一个全屏活动.上面没有像Notification Bar那样的东西,下面没有像Home-Button那样的东西.我能够得到这个,但也想删除下面的主页按钮栏:
这是我的代码.
<style name="MyScreen" parent="@style/Theme.AppCompat.Light">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
Run Code Online (Sandbox Code Playgroud) android android-layout android-view android-activity android-fullscreen
我注意到在以下情况中发生了一个非常恼人的闪烁:显示全屏活动,然后启动另一个非全屏活动.
在我的应用程序中,我在第二个活动的顶部使用了一个操作栏,我清楚地看到在活动之间切换时如何进行闪烁.
当状态栏出现时,它不能平稳地推动我的活动,但很快就会出现这种烦人的闪烁.
我可以用一些API来控制这种行为吗?还是其他一些解决方法?
android ×9
fullscreen ×2
android-view ×1
cordova ×1
flicker ×1
flutter ×1
html5-video ×1
statusbar ×1