沉浸式状态栏

在这里插入图片描述
有layout和没有layout区别:https://blog.csdn.net/u010389391/article/details/53007706

游戏或影视状态:

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE|View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION|
                  View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_HIDE_NAVIGATION|View.SYSTEM_UI_FLAG_FULLSCREEN|View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);

一般app状态:

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE|View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
 //将状态栏颜色设为透明
           activity. getWindow().setStatusBarColor(Color.TRANSPARENT);
            //隐藏标题栏可以 getSupportActionBar().hide();或者在menifest设置主题

封装沉浸式转态栏的方法:
在framework模块的utils包下创建SystemUITils类,创建静态方法

public class SystemUIUtils {
    public static void fixSystemUI(Activity activity){
        //如果运行apk的安卓系统的版本大雨或等于棒棒糖版本就执行,Build.VERSION.SDK_INT是获取当前系统版本
        if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP){
            //获取最顶层的View
            //View.SYSTEM_UI_FLAG_FULLSCREEN少状态栏,标题栏还是有的。
            activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE|View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
            //将状态栏颜色设为透明
           activity. getWindow().setStatusBarColor(Color.TRANSPARENT);
            //隐藏标题栏可以 getSupportActionBar().hide();或者在menifest设置主题


        }

    }
}

在framework模块下创建base包,创建BaseUIActivity类继承AppCompact重写onCreate方法

public class BaseUIActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        SystemUIUtils.fixSystemUI(this);
    }
}

在Activity引入自定义没有标题的主题AppThemeFull;

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>
    <style name="AppThemeFull" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowActionBar">false</item>
        <item name="android:windowFullscreen">true</item>
    </style>

</resources>

在Menifest中对应是Activity引入主题;

 <activity android:name="UI.GuideActivity" android:theme="@style/AppThemeFull" />

将MainActivity继承baseUIActivity.在mainActivity引入frameworkModel,在app的gradle添加依赖。
在这里插入图片描述
效果:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值