|-转 Android隐藏标题栏、状态栏、导航栏及全屏方法总结
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. 隐藏标题栏
① 在代码里实现
- 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. 隐藏状态栏
① 在代码里实现
- Activity继承 Activity/AppCompatActivity:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
...
浏览更多内容请先登录。
立即注册
更新于:2022-06-08 12:41:29
相关内容
遨游互联网,网上猎奇中~~~
十部女主性感到令人窒息的美剧 尺度甚至堪比成人片
真枪实弹,假戏真做,12部具有“实干精神”的电影!
2022年的“台湾四大三小天后”
《外国公司问责法》难阻中概股赴美上市(这个标题现在看变成了笑话)
又一家!腾讯旗下企鹅电竞宣布退市,6月7日终止运营…游戏直播行业增长放缓
沈曼落幕时代公会易主,虎牙婷儿全资收购,公会更名“依然盛世”
万里独行悍匪周克华
知名论坛凯迪社区关闭,启用新域名并改版为信息流资讯站
十年前最火的豆瓣、猫扑、人人网、天涯社区,为什么现在不火了?
猫扑,凉了!一代“网红鼻祖”终究还是输给了时代...
2023年的人人网现在怎么样了
在太保工作中遇到的互联网以及内网问题记录
IE如何取消阻止跨站脚本
电销三期打印要安装PageOn的问题
一些公司网址浏览器兼容性问题
网址打开页面显示不全,增值税管理系统页面显示不全
UCStar 聊天记录存在哪里
内网用UcStar聊天记录文件存放路径
公司内网浏览器设置问题
各种应用安装包括驱动程序都要内网的管理员账号才能安装
绿联USB声卡虚拟7.1驱动-绿联官网地址
WEB技术
WEB技术之前端技术
WEB技术之后端技术
WEB应用转手机APP,手机APP制作平台推荐
WEB应用与手机APP
Android相关
2017 年 Web 开发工程师技术发展路线图
session:手动删除客户端上的所有cookie,再次访问的时候为什么还是登录状态?
WEB技术之前端技术2
互联网相关
2008年通过互联网领袖扑克牌看中国互联网形势
我用搜索引擎中遇到的问题和心得
互联网相关
2021 回顾展望-转载WoodenStone博客上的
推荐内容