我有一个活动进入另一个全屏幕活动.但是,当从此活动转换到我的全屏活动时,导航栏会向下滑动而不是立即消失.我在第二个活动中为一个全屏幕窗口充气,但是由于慢速滑动动画,它在动画完成后1秒后调整大小而不是立即充气到全屏幕.因此,我需要动画立即消失.我试过了
<item name="android:windowAnimationStyle">@null</item>
和
overridePendingTransition(0, 0);
Run Code Online (Sandbox Code Playgroud)
和
Transition fade = new Fade();
fade.excludeTarget(android.R.id.navigationBarBackground, true);
getWindow().setEnterTransition(fade);
Run Code Online (Sandbox Code Playgroud)
没有运气.
在Windows方面,我试过了
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
WindowManager.LayoutParams.FLAG_FULLSCREEN
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
Run Code Online (Sandbox Code Playgroud)
我如何隐藏导航栏: View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
我有一个全屏沉浸式活动,必须保持全屏直到用户明确退出.(例如,想想像全屏观看Youtube视频一样).
但是,我最近注意到很多不需要的活动启动可能会破坏我的应用程序的行为.例如,许多阴暗的"免费应用"倾向于生成全屏透明活动和展示广告,立即扰乱用户.某些应用程序实际上是全屏活动的"全屏"通知弹出窗口也会立即扰乱我的活动.
有没有办法避免这些活动窃取焦点,或者一种方法让它们落后于我的全屏活动,这样它就不会破坏我的全屏模式?换句话说,每当一些流氓应用程序决定在我的活动上发起一项活动时,如何让我的活动始终保持在最顶层?
它们不需要被取消,而是"暂时搁置"直到用户退出全屏活动.
我想到的一种方法是在FLAG_ACTIVITY_REORDER_TO_FRONT失去焦点的那一刻重新启动我的活动,但这对用户来说并不美观:(
注意:如果您想自己尝试一下,我发现了一个"模拟"这些流氓活动的应用程序.下载此内容 - https://play.google.com/store/apps/details?id=com.nlucas.popupnotificationslite&hl=en
每当您收到通知时,它都会启动全屏透明活动.尝试观看Youtube视频并收到某人的10条通知,并想象它会分散注意力.
更新:这样做似乎不起作用:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (!hasFocus) {
Intent i = new Intent(getBaseContext(), MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
startActivity(i);
}
Run Code Online (Sandbox Code Playgroud) 这听起来像一个愚蠢的问题,我很抱歉,如果是,但我已经四处搜索,以获得它们是什么的直观表示,并且没有提出任何问题.
以下是Android对此的评价:
WindowInsets是不可变的,可以扩展到将来包含更多的插入类型.
http://developer.android.com/reference/android/view/WindowInsets.html
Google图片自动更正窗口插入...
为什么有人会使用这些"插图"?它们与没有家用物理钥匙的手机上的导航栏有什么关系吗?