安卓全屏设置实现(基于Activity与AppCompatActivity)

来源:互联网 发布:炉石主播 知乎 编辑:程序博客网 时间:2024/06/06 17:23

为了让新手少走点弯路,现在新建的项目多大自动继承自AppCompatActivity。
如果采用以前的实现方法,都会出现报错的情况,很多博客只讲其一不讲其二
我在这里 两种方法都会提到

Activity下的实现
以下方法只能基于Activity,继承AppCompatActivity则不能实现。
一 . 通过代码
在setContentView之前执行:

requestWindowFeature(Window.FEATURE_NO_TITLE);//隐藏标题栏getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);//隐藏状态栏

二. 调用Android自带的Theme
直接在AndroidManifest.xml中需要全屏显示的Activity属性中添加

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

三 . 自己定义全屏Theme
在style.xml文件中定义theme(如果没有style.xml,在res/values目录下创建)

<resources>     <style name="Theme.NoTitle_FullScreen">         <item name="android:windowNoTitle">true</item>            <item name="android:windowFullscreen">true</item>          </style> </resources>

直接在AndroidManifest.xml中需要全屏显示的Activity属性中添加

android:theme="@style/Theme.NoTitle_FullScree"





AppCompatActivity下的实现
* 一. 自己定义全屏Theme*

<style name="MyStyle" parent="Theme.AppCompat.NoActionBar">    <item name="android:windowFullscreen">true</item>    <item name="android:windowNoTitle">true</item>    <item name="windowActionBar">false</item></style>



二. 自己定义全屏Theme
在上Activity上提到的方法一与方法二在AppCompatActivity中是会报错的
方法三在AppCompatActivity中是不会报错的,但并不会真正实现全屏
会存在ActionBar无法隐藏的情况

一 . 基于上面Activity上的方法三,隐藏ActionBar
我们可以通过代码隐藏ActionBar , 记得初始化ActionBar 直接获取会报空指针

 getSupportActionBar().Hide();

二 . 自己定义全屏Theme
这里跟上面的方法三类似

   <style name="AppTheme.FullScreenTheme" parent="Theme.AppCompat.Light.NoActionBar">        <item name="android:windowNoTitle">true</item>        <item name="android:windowFullscreen">true</item>        <item name="android:windowActionBar">false</item>    </style>
原创粉丝点击