Android开发:去除标题栏title
我们平常开发Android程序时,编辑器总会自动给我们创建一个标题栏,但有时候为了美观我们并不
想要界面上有个标题栏,所以我们需要隐藏默认的这个标题栏。
首先我们先要区分状态栏/标题栏/导航栏
-
状态栏(Status Bar)
-
标题栏(Title Bar)
- 导航栏(Navigation Bar)
去除方法:
1.编辑器为Eclipse或AIDE
若使用的编辑器为Eclipse或AIDE,因为他们Activity类继承的是Activity属于v4包,所以隐藏标题栏有3种方法:
一、在代码里实现
requestWindowFeature(Window.FEATURE_NO_TITLE); //去掉标题拦
注:一定要记住这句代码要写在setContentView()前面。
二、在清单文件(AndroidManifest.xml)里面实现
<application android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.Light.NoTitleBar">
这样可以将整个应用的所有Activity设置成无标题栏,如果只要在一个Activity设置成一个无标题栏的形式,只要把上面的第一种方法的代码写到对应的activity中即可。
<activity android:name=".MainActivity" android:theme="@android:style/Theme.Light.NoTitleBar"/>
三、在style.xml文件里定义
<!-- 设置无标题的样式 -->
<style name="noTitle">
<item name="android:windowNoTitle">true</item>
</style>
然后在AndroidManifest.xml中就可以引用了,这种方法稍麻烦了一点
<application android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/notitle">
其实可以看得出来,第二种方法和第三种方法实质是一样的,只不过第二种方法调用的是系统定义好的style.xml文件,而第三种方法则是在自己的应用里定义style.xml,然后再自己再调用,其实道理是一样的。2.编辑器为Android Studio
若使用的编辑器为Android Studio,这里的Activity类继承的是AppCompatActivity,这个是属于support v7附加包的类。
两者之间的区别就不写了,具体可以去百度一下。接下来介绍其隐藏标题栏的方法。
方式一:在布局文件中进行设置
整个应用都不显示标题栏:
如果是想让标题栏在整个应用中都不显示,那么,则可在AndroidManifest.xml中的<application>节点
上设定其属性android:theme为带有NoActionBar的值,这样所创建的所有activity都不会带有标题栏了;如:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SecondActivity"></activity>
</application>second
注:同上方Eclipse方法二一样由于<application>节点的android:theme指定为了@style/theme.AppCompat.Light.NoActionBar,与此同时,又由于其所有的子节点<activity>的属性android:theme都并未指定,这样所有的activity就都不会带有标题栏。
某一个activity不显示标题栏:
若是想让应用中的某一个activity不显示标题栏,则可设定对应的activity的属性android:theme为带有NoActionBar的值,如:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/Theme.AppCompat">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".SecondActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"> 这里activity设置为没有标题栏的主题
</activity>
</application>
方式二:在代码中进行设置
因为Activity继承的是AppCompatActivity属于v7的包,上方Eclipse一句话代码并不适用,
这时候需要插入另外一条语句:getSupportActionBar().hide();
示例:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/**
* 如果是Android Studio默认创建的AppCompatActivity,
* 需用getSupportActionBar().hide();
* 这句话同样需要放在setContentView()之前才有效;
*/
getSupportActionBar().hide();
setContentView(R.layout.MainActivity);
}
}
以上就是各种隐藏标题栏的方法,不只是标题栏,状态栏,导航栏也有方法可以根据自己的想法隐藏。
上一篇: PHP数组问题,求助!