关于actionbar设置.setDisplayShowHomeEnabled(true)的一些问题

很长时间没有写博文了,最近做一个东西用的是actionbar和ViewPager实现导航,当然为了兼容3.0以下的系统,我使用了开源的库actionbarsherlock,当我的代码一切写的都ok了,然后我在我买的手机上看了一下效果很不错,当时很高兴,但是我在4.4以下的系统试了一下意外的发现了一个问题,actionbar和table页上下颠倒了,我的神啊,于是我就在找问题原因,当时我就在网上找原因,最后网上说在4.4以下就是有那个原因,是因为你设置了actionbar.setDisplayShowHomeEnabled(false);那么我要是设置为true的话我自定义的actionbar布局就会多了一个icon,这完全不是我想要的啊,于是我就在各种找原因,最后解决方案如下:


int sysVersion = Integer.parseInt(VERSION.SDK); 
View homeIcon = null;
//如果是3.0以下的版本(因为我用了actionbarSherlock兼容了低版本),需要在开源库里面的R文件去找
if (sysVersion<11) {
homeIcon = findViewById(com.actionbarsherlock.R.id.abs__home);

//如果是3.0以及以上的版本,会默认调用android提供的ActionBar,所以需要在android.R中找到homeIcon的Id
else {
homeIcon = findViewById(android.R.id.home);
}
//找到后获得他的父控件,然后隐藏即可
((View) homeIcon.getParent()).setVisibility(View.GONE);


记得是在activity的oncreate方法里面设置。


int sysVersion = Integer.parseInt(VERSION.SDK); 
		View homeIcon = null;
		//如果是3.0以下的版本(因为我用了actionbarSherlock兼容了低版本),需要在开源库里面的R文件去找
		if (sysVersion<11) {
			homeIcon = findViewById(com.actionbarsherlock.R.id.abs__home);
		} 
		//如果是3.0以及以上的版本,会默认调用android提供的ActionBar,所以需要在android.R中找到homeIcon的Id
		else {
			homeIcon = findViewById(android.R.id.home);
		}
			//找到后获得他的父控件,然后隐藏即可
		((View) homeIcon.getParent()).setVisibility(View.GONE);


你可能感兴趣的:(关于actionbar设置.setDisplayShowHomeEnabled(true)的一些问题)