解决用android Studio开发不能去除标题栏的问题

1.在代码里实现

[java]  view plain  copy
  1. this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏  
记住:这句代码要写在setContentView()前面。

2.在清单文件(manifest.xml)里面实现

[java]  view plain  copy
  1. <application android:icon="@drawable/icon"   
  2.         android:label="@string/app_name"   
  3.         android:theme="@android:style/Theme.NoTitleBar">  
这样用可以将整个应用设置成无标题栏,如果只需要在一个Activity设置成一个无标题栏的形式,只要把上面的第三行代码写到某一个Activity里面就可以了。

3.在style.xml文件里定义

[html]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <resources>  
  3.     <style name="notitle">  
  4.         <item name="android:windowNoTitle">true</item>  
  5.     </style>   
  6. </resources>  
然后面manifest.xml中引用就可以了,这种方法稍麻烦了些。

[html]  view plain  copy
  1. <application android:icon="@drawable/icon"   
  2.         android:label="@string/app_name"   
  3.         android:theme="@style/notitle">  

其实可以看得出来,第二种方法和第三种方法实质是一样的,只不过第二种方法调用的是系统定义好的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包的同与不同,帮助实现更得心应手的开发。





1.在代码里实现

[java]  view plain  copy
  1. this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏  
记住:这句代码要写在setContentView()前面。

2.在清单文件(manifest.xml)里面实现

[java]  view plain  copy
  1. <application android:icon="@drawable/icon"   
  2.         android:label="@string/app_name"   
  3.         android:theme="@android:style/Theme.NoTitleBar">  
这样用可以将整个应用设置成无标题栏,如果只需要在一个Activity设置成一个无标题栏的形式,只要把上面的第三行代码写到某一个Activity里面就可以了。

3.在style.xml文件里定义

[html]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <resources>  
  3.     <style name="notitle">  
  4.         <item name="android:windowNoTitle">true</item>  
  5.     </style>   
  6. </resources>  
然后面manifest.xml中引用就可以了,这种方法稍麻烦了些。

[html]  view plain  copy
  1. <application android:icon="@drawable/icon"   
  2.         android:label="@string/app_name"   
  3.         android:theme="@style/notitle">  

其实可以看得出来,第二种方法和第三种方法实质是一样的,只不过第二种方法调用的是系统定义好的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包的同与不同,帮助实现更得心应手的开发。




猜你喜欢

转载自blog.csdn.net/qq_32868167/article/details/77871478