我的问题是关于android 4.0 +
我通过2个步骤完成了pernament的活动:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WindowManager wm = (WindowManager) getApplicationContext().getSystemService(
Context.WINDOW_SERVICE);
getWindow().addFlags(WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY);
getWindow().addFlags(android.view.WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
和
@Override
public void onResume() {
super.onResume();
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_IMMERSIVE
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LOW_PROFILE);
它在所有android 4.0+中工作正常,我也可以在布局中创建任何视图(例如按钮),可以点击
WindowManager.LayoutParams params = new WindowManager.LayoutParams();
params.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
params.format = PixelFormat.RGBA_8888;
params.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
params.width = 600;
params.height = 200;
wm.addView(exitButton, params)
在我得到的其他点击事件中 - 删除事件,因为没有可触摸的窗口,它很棒,但我需要在ActionBar中使用按钮。
有没有办法用WindowManager或其他解决方案做到m.b?
P.S。
this.requestWindowFeature(Window.FEATURE_ACTION_MODE_OVERLAY);
this.requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
不起作用,主题也没有影响。
答案 0 :(得分:0)
您是否尝试使用<item name="android:windowActionBarOverlay">true</item>
覆盖它?
来自doc:
要为操作栏启用叠加模式,您需要创建一个扩展现有操作栏主题的自定义主题,并将
android:windowActionBarOverlay
属性设置为true
。
有关此属性的详细信息,请阅读有关Overlaying the Action Bar。
的文档