android– 重叠阴影效果仍保留在Navigation Drawer的NavigationView上

android– 重叠阴影效果仍保留在Navigation Drawer的NavigationView上,第1张

概述我已经改进了AndroidStudio的NavigationDrawerActivity项目模板,该模板使用Toolbar,v7.app.ActionBarDrawerToggle和NavigationView而不是NavigationDrawerFragment(以及layout/fragment_navigation_drawer.xml).它完美地工作.然后,我走得更远.我的导航抽屉项目处于沉浸式粘

我已经改进了Android Studio的Navigation Drawer Activity项目模板,该模板使用Toolbar,v7.app.ActionbarDrawerToggle和NavigationVIEw而不是NavigationDrawerFragment(以及layout / fragment_navigation_drawer.xml).

它完美地工作.然后,我走得更远.我的导航抽屉项目处于沉浸式粘性(全屏)模式.

@OverrIDepublic 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);    }}@OverrIDeprotected 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" description for accessibility */    ) {        @OverrIDe        public voID onDrawerClosed(VIEw drawerVIEw) {            super.onDrawerClosed(drawerVIEw);            invalIDateOptionsMenu(); // calls onPrepareOptionsMenu()        }        @OverrIDe        public voID onDrawerOpened(VIEw drawerVIEw) {            super.onDrawerOpened(drawerVIEw);            invalIDateOptionsMenu(); // calls onPrepareOptionsMenu()        }    };    drawerLayout.setDrawerListener(drawerToggle);    navigationVIEw = (NavigationVIEw) findVIEwByID(R.ID.navigation_vIEw);    navigationVIEw.setNavigationItemSelectedListener(this);}@OverrIDeprotected voID onPostCreate(Bundle savedInstanceState) {    super.onPostCreate(savedInstanceState);    drawerToggle.syncState();}@OverrIDepublic voID onConfigurationChanged(Configuration newConfig) {    super.onConfigurationChanged(newConfig);    drawerToggle.onConfigurationChanged(newConfig);}@OverrIDepublic boolean onoptionsItemSelected(MenuItem item) {    if (drawerToggle.onoptionsItemSelected(item)) {        return true;    }    ...}

问题已经出现.从状态栏(在顶部)和导航栏(在底部)导出的NavigationVIEw上的重叠阴影效果的波段保持静止.

我怎么能摆脱他们?

我查看了AndroID的v7.app.ActionbarDrawerToggle或NavigationVIEw的来源,但是徒劳无功.

更新:

感谢@ lcw_gg的建议,我完全摆脱了状态栏的阴影(导航栏的阴影仍然存在).那就是在布局xml中设置androID:windowFullscreen属性为true.

但是我想用Java代码做这件事.我找到了一种方法,可能它等同于xml方式:

getwindow().addFlags(WindowManager.LayoutParams.FLAG_FulLSCREEN);

通过这样做,您不再需要将这两个标志 – VIEw.SYstem_UI_FLAG_LAYOUT_FulLSCREEN和VIEw.SYstem_UI_FLAG_FulLSCREEN – 设置为decorationVIEw.

不过,我找不到摆脱导航栏阴影的方法.我在等待解决方案.

解决方法:

最后,我做到了.

解决方案是将FLAG_LAYOUT_NO_liMITS与FLAG_FulLSCREEN一起使用到android.view.Window对象.

getwindow().addFlags(WindowManager.LayoutParams.FLAG_FulLSCREEN        | WindowManager.LayoutParams.FLAG_LAYOUT_NO_liMITS);

这完全摆脱了两个阴影.

lcw_gg的评论是非常有用的 *** 纵android.view.Window的线索.特别感谢他.

总结

以上是内存溢出为你收集整理的android – 重叠阴影效果仍保留在Navigation Drawer的NavigationView上全部内容,希望文章能够帮你解决android – 重叠阴影效果仍保留在Navigation Drawer的NavigationView上所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1097607.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存