Android相关

Android隐藏标题栏、状态栏、导航栏及全屏方法总结

PHPer 2022-06-08 144 0 0




3c3c53f73c_normal.png





Android开发中,有时候根据需求要隐藏标题栏、状态栏、导航栏或者全屏显示。看似很简单的功能,但是不注意使用环境,就会出现错误。



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


在AndroidManifest.xml中使用 android:theme="@android:style/Theme.Light.NoTitleBar"或android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen"来隐藏标题栏和状态栏的错误。




下面我们就来详细的分析下不同情景下,隐藏标题栏、状态栏、导航栏及全屏实现方法:


1. 隐藏标题栏





fbb14c58a7_normal.png





① 在代码里实现



  • Activity继承 Activity


this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏



注意:一定要写在setContentView()方法之前



  • Activity继承 AppCompatActivity


 getSupportActionBar().hide();// 隐藏ActionBar


② 在清单文件(AndroidManifest.xml中的application或者activity)里面实现



  • Activity继承 Activity


<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@android:style/Theme.Light.NoTitleBar">
<!--android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>-->
...
</application>



<activity android:name=".MainActivity"
android:theme="@android:style/Theme.Light.NoTitleBar"/>
<!--android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>-->



  • Activity继承 AppCompatActivity


<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
...
</application>



<activity android:name=".MainActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>


③ 在style.xml文件里定义,在AndroidManifest.xml中的application或者activity上引用



  • Activity继承 Activity/AppCompatActivity

    style.xml文件:


<?xml version="1.0" encoding="UTF-8" ?>
<resources>
<style name="notitle" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowNoTitle">true</item>
</style>
</resources>


AndroidManifest.xml文件:


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



<activity android:name=".MainActivity"
android:theme="@style/notitle"/>



注意:

1)android:theme="@android:style/Theme.Light.NoTitleBar"代码如果在application中配置的话,整个APP的 Activity都只能是继承自Activity,不能是AppCompatActivity,因为AppCompatActivity下的 Theme只能是ActionBar样式的;如果只在某一个 Activity下配置,那么只要确保当前 Activity是继承Activity,而不是继承AppCompatActivity即可;

2)android:theme="@style/Theme.AppCompat.Light.NoActionBar"代码如果在application中配置的话,整个APP的Activity可以继承Activity或者AppCompatActivity;如果只在某一个 Activity下配置,当前 Activity可以继承Activity或者AppCompatActivity。


2. 隐藏状态栏





eae0a2672b_normal.png





① 在代码里实现



  • Activity继承 Activity/AppCompatActivity


 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);


...

立即注册

更新于:2022-06-08 12:41:29
    您需要登录后才可以评论。 立即注册
    相关内容

    遨游互联网,网上猎奇中~~~~~~~

    十部女主性感到令人窒息的美剧 尺度甚至堪比成人片

    真枪实弹,假戏真做,12部具有“实干精神”的电影!

    WEB技术

    WEB技术之前端技术

    WEB技术之后端技术

    WEB应用转手机APP,手机APP制作平台推荐

    WEB应用与手机APP

    Android相关

    2017 年 Web 开发工程师技术发展路线图

    在太保工作中遇到的互联网以及内网问题记录

    IE如何取消阻止跨站脚本

    电销三期打印要安装PageOn的问题

    一些公司网址浏览器兼容性问题

    网址打开页面显示不全,增值税管理系统页面显示不全

    ​UCStar 聊天记录存在哪里

    内网用UcStar聊天记录文件存放路径

    公司内网浏览器设置问题

    各种应用安装包括驱动程序都要内网的管理员账号才能安装

    绿联USB声卡虚拟7.1驱动-绿联官网地址

    互联网相关

    2008年通过互联网领袖扑克牌看中国互联网形势

    我用搜索引擎中遇到的问题和心得

    互联网相关

    推荐内容

    分享几个好用的bt搜索bt资源下载网址网站

    影视电影剧集动漫综艺bt资源在线播放网址网站推荐分享

    全网最新bt磁力搜索引擎bt资源bt网站网址分享

    怎样使用V2Ray代理和SSTap玩如魔兽世界/绝地求生/LOL台服/战地3/黑色沙漠/彩...

    sstap游戏代理教程 从此玩如魔兽世界/绝地求生/LOL台服/战地3/黑色沙漠/彩虹六...

    使用V2Ray的mKCP协议加速游戏

    v2rayN已停止工作