我已经改进了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上所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)