最近在使用SlidingMenu时,同样的布局代码在4.2的模拟器上运行时显示正常,而在5.0的模拟器上运行却有遮盖,起初我以为是我的布局写的有问题,但是想了很长时间,觉得应该不是布局的问题,就上网搜索答案,毕竟它已经很长时间没有更新了,会不会版本的问题。一搜索,果然,就是它导致的,具体原因网上都有介绍。这里简单记录下解决的方法,实际上只需初始化SlidingMenu的时候加上这样一行代码就行了:
if(Build.VERSION.SDK_INT >= 21){
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
}
比如在我的代码中,就加在了这样的位置上:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//1. 配置主页面
setContentView(R.layout.activity_main);
//添加解决问题的就是这行代码
if(Build.VERSION.SDK_INT >= 21){
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
}
//2. 配置左侧菜单页面
setBehindContentView(R.layout.left_menu);
//3. 配置菜单使用模式
SlidingMenu slidingMenu = getSlidingMenu();
slidingMenu.setMode(SlidingMenu.LEFT);
//4. 设置拖拽区域
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
//5. 配置主页面留着的屏幕的宽度
slidingMenu.setBehindOffset(DensityUtil.dip2px(250));
initFragment();
}