1.在代码里实现
记住:这句代码要写在setContentView()前面。2.在清单文件(manifest.xml)里面实现
这样用可以将整个应用设置成无标题栏,如果只需要在一个Activity设置成一个无标题栏的形式,只要把上面的第三行代码写到某一个Activity里面就可以了。3.在style.xml文件里定义
然后面manifest.xml中引用就可以了,这种方法稍麻烦了些。其实可以看得出来,第二种方法和第三种方法实质是一样的,只不过第二种方法调用的是系统定义好的style.xml文件,而第三种方法则是在自己的应用里定义style.xml,然后再自己再调用,其实道理是一样的,第三种方法做起来更有成就感。
之前在eclipse上进行开发的时候,要去除Activity的的默认标题栏,我习惯使用的方法是用下面这行代码:
1
|
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属性替换如下:
1
|
android:theme=
"@style/Theme.AppCompat.NoActionBar"
>
|
问题同样可以解决
3.更换requestWindowFeature(Window.FEATURE_NO_TITLE);代码为:
1
2
3
|
//v7包下去除标题栏代码:
getSupportActionBar().hide();
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
以上三种办法,都可以好处理好android Studio下不能去除标题栏的问题。但注意的是尽管第一种与我们的习惯很接近(作为eclipse使用者而言),但这种方法却是一种将v7舍弃的方法,作为技术越来越新的学科,这种办法是不提倡的。因此,建议使用第二种或者第三种办法,同时也多了解一下v4包和v7包的同与不同,帮助实现更得心应手的开发。