解决用android Studio开发不能去除标题栏的问题
之前在eclipse上进行开发的时候,要去除Activity的的默认标题栏,我习惯使用的方法是用下面这行代码:
requestWindowFeature(Window.FEATURE_NO_TITLE);
但是,最近打算学习android Studio,于是打算用studio来弄一个项目作为练手,结果在写splash界面的时候就差点弄出了个大乌龙,在这里记一下,免得以后再犯:
在去除Activiry标题栏的时候,使用了上述代码,但是运行时,结果如下:
在这里发现,虽然设置了去除标题栏,但实质上并没有起到什么效果。初时以为是模拟机的问题,然后用了真机测试,问题不变。断定问题出在代码上。可是代码一直这么写过来,应该不会有错的呀。于是从头检查代码。发现了问题所在:
如果有注意的话,这里的Activity类继承的是AppCompatActivity,这个是属于support v7附加包的类。而eclipse使用的则是v4包,继承的是Activity类。两者之间有什么不一样的地方,可以百度一下,这里不多说。下面是解决办法:
1.修改父类Acticity,将AppComPatActiviry替换为Activiry,问题解决
2.修改AndroidManiFest.xml文件,将< activity>中的Theme属性替换如下:
android:theme="@style/Theme.AppCompat.NoActionBar">
问题同样可以解决
3.更换requestWindowFeature(Window.FEATURE_NO_TITLE);
代码为:
//v7包下去除标题栏代码:
getSupportActionBar().hide();
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
以上三种办法,都可以好处理好android Studio下不能去除标题栏的问题。但注意的是尽管第一种与我们的习惯很接近(作为eclipse使用者而言),但这种方法却是一种将v7舍弃的方法,作为技术越来越新的学科,这种办法是不提倡的。因此,建议使用第二种或者第三种办法,同时也多了解一下v4包和v7包的同与不同,帮助实现更得心应手的开发。
上一篇: PHP rewrite后CSS式样丢失