欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android开发:去除标题栏title

程序员文章站 2022-05-31 09:48:09
...

       

        我们平常开发Android程序时,编辑器总会自动给我们创建一个标题栏,但有时候为了美观我们并不

想要界面上有个标题栏,所以我们需要隐藏默认的这个标题栏。


首先我们先要区分状态栏/标题栏/导航栏

  • 状态栏(Status Bar)
  • 标题栏(Title Bar)
  • 导航栏(Navigation Bar)

 

  Android开发:去除标题栏title

  Android开发:去除标题栏title


去除方法:

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);
    }
}


        以上就是各种隐藏标题栏的方法,不只是标题栏,状态栏,导航栏也有方法可以根据自己的想法隐藏。