Android - 总结下使用过的界面全屏的两种方式及其区别

唠叨

目前在开发中使用的都是 appcompat-v7 下的各个兼容空间,当然也包括 AppCompatActivity ,当 activity 继承自 AppCompatActivity 的时候,使用的主题必须也是 Theme.AppCompat 开头的主题样式,不然报下面错误:

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.                                                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2305)                                                                         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2365)
...
Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity                                                                         atandroid.support.v7.app.AppCompatDelegateImplV9.createSubDecor(AppCompatDelegateImplV9.java:359)
 atandroid.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:328)
 ...

错误原因已经很明确了,说了使用AppCompatActivity 主题必须使用 Theme.AppCompat theme ;

好吧,我说多了,下面进入全屏实现:

动态实现

动态实现适合不管你使用的是普通的Activity还是兼容包的AppCompatActivity , 均可以使用;

这里写图片描述

比如:

public class WelActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 无 title
        requestWindowFeature(Window.FEATURE_NO_TITLE);  
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
         // set view
        setContentView(R.layout.activity_wel);
    }

静态实现

说白了,就是在 AndroidManifest.xml 中配置的时候,配置 全屏 theme

 android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

这里写图片描述

但这只适合继承普通Activity的使用,上面已经说了,使用AppCompatActivity 主题必须使用 Theme.AppCompat theme ;

如果你使用了AppCompatActivity 就使用 动态实现的方式吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值