Android设置Activity全屏(2018-08更新)

目录

前言

方式一:设置全屏

1、设置无标题栏

(1)java代码实现,无标题栏

(2)通过 AndroidManifest.xml 配置,实现无标题栏

2、设置无菜单栏

(1)java代码实现无菜单栏

方式二:设置全屏【推荐】

1、全部Activity全屏

步骤1:通过 AndroidManifest.xml 配置设置

步骤2:Activity继承问题


前言

在实际的应用程序开发中,我们有时需要把 Activity 设置成全屏显示。即如下图标题栏、菜单栏都不显示。

它可以通过两种方式来设置全屏显示效果。

 

 

方式一:设置全屏

1、设置无标题栏

(1)java代码实现,无标题栏

requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);

requestWindowFeature(Window.FEATURE_NO_TITLE);

要放置在 setContentView(R.layout.activity_main);  这行代码的前面,要不然会报错。

注意:之前 Android 2.3 测试是有效的。Android 6.0、8.0 无效果!

 

Android 6.0、8.0 可以使用如下语句:

setContentView(R.layout.activity_main);
getSupportActionBar().hide();

 

(2)通过 AndroidManifest.xml 配置,实现无标题栏

某个activity无标题栏

<activity
    android:name=".MainActivity"
    android:theme="@style/Theme.AppCompat.Light.NoActionBar"
    >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>


 

 

2、设置无菜单栏

(1)java代码实现无菜单栏

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    
    getWindow().setFlags(
            WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN
    );

}

 

 

方式二:设置全屏【推荐】

1、全部Activity全屏

步骤1:通过 AndroidManifest.xml 配置设置

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

 

步骤2:Activity继承问题

情况1:继承Activity,不继承AppCompatActivity【推荐】

import android.app.Activity;
//public class MainActivity extends AppCompatActivity {
public class MainActivity extends Activity {

此时 AndroidManifest.xml 配置的Activity 如下:

<activity android:name=".RegisterActivity" />
<activity android:name=".MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

 

情况2:继承AppCompatActivity【不推荐】

因为步骤1,配置了如下 theme

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

如果 Activity 继承 AppCompatActivity

import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
//public class MainActivity extends Activity {

此时运行项目会报如下错误:

Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.

解决方式:

如果必须要继承AppCompatActivity的话,根据提示来使用AppCompat的theme,

即将AndroidManifest.xml文件中关于Activity的主题配置改成:

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

例如:

<activity
    android:name=".RegisterActivity"
    android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>
<activity
    android:name=".MainActivity"
    android:theme="@style/Theme.AppCompat.Light.NoActionBar"
    >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

上面两个Activity都要加,看上去使用  情况1:继承Activity  稍微方便

 

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

被开发耽误的大厨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值