Android 去掉标题栏

469 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

在Android中去掉标题栏有三种方法

1. 在代码里实现

this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏
        setContentView(R.layout.activity_main);
    }
}

注意:去掉标题栏注意这句一定要写在setContentView()方法的前面,不然会报错的

android studio中继承Activity的时候一般继承的是AppCompatActivity 这样是去不掉上面的标题栏的,需要把AppCompatActivity改成Activity就可以去掉标题栏了

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

在application加一句
android:theme="@style/Theme.Lookboard"

 <style name="Theme.Lookboard" parent="Theme.MaterialComponents.NoActionBar.Bridge" >
        <!-- Primary brand color. -->
        <item name="colorPrimary">@color/purple_500</item>
        <item name="colorPrimaryVariant">@color/purple_700</item>
        <item name="colorOnPrimary">@color/white</item>
        <!-- Secondary brand color. -->
        <item name="colorSecondary">@color/teal_200</item>
        <item name="colorSecondaryVariant">@color/teal_700</item>
        <item name="colorOnSecondary">@color/black</item>
        <!-- Status bar color. -->
        <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
         Customize your theme here.
    </style>

3.在style.xml文件里定义

<?xml version="1.0" encoding="UTF-8" ?>
<resources>
    <style name="notitle">
        <item name="android:windowNoTitle">true</item>
    </style> 
</resources>

在清单文件(AndroidManifest.xml) application 中引用就可以了

android:theme="@style/notitle"
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/notitle">

如果以上三种都不能解决

这里的Activity类继承的是AppCompatActivity,这个是属于support v7附加包的类。而eclipse使用的则是v4包,继承的是Activity类.

  • 以下是解决方法

1.修改父类Acticity,将AppComPatActiviry替换为Activiry

2.修改AndroidManiFest.xml文件,将< activity>中的Theme属性替换如下:

android:theme="@style/Theme.AppCompat.NoActionBar">

3.在onCreate方法中 更换requestWindowFeature(Window.FEATURE_NO_TITLE);代码为:

//v7包下去除标题栏代码:
getSupportActionBar().hide();   
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getSupportActionBar().hide();
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_main);
    }

}

注意:去掉标题栏上面的这两句,一定要写在setContentView()方法的前面,不然会报错的

  • 以上是全部内容,如果有疑问欢迎留言讨论