沉浸式状态栏ImmersionBar,很简单

首先导入依赖:

compile 'com.gyf.barlibrary:barlibrary:2.3.0'

用法:

在Activity中的使用:只有短短的5行左右就实现了沉浸式效果。

package com.example.ljg.my_ljg_project;
import android.os.Bundle;
import com.example.ljg.my_ljg_project.base.BaseFragmentActivity;
import com.gyf.barlibrary.ImmersionBar;

public class HomeActivity extends BaseFragmentActivity {

    private ImmersionBar mImmersionBar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);
        
        mImmersionBar = ImmersionBar.with(this);
        mImmersionBar.init();

    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (mImmersionBar != null)
            mImmersionBar.destroy();  //必须调用该方法,防止内存泄漏,不调用该方法,如果界面bar发生改变,在不关闭app的情况下,退出此界面再进入将记忆最后一次bar改变的状态
    }
}

基础用法(已经可以满足日常沉浸式)

  ImmersionBar.with(this).init();

  • 高级用法(每个参数的意义)

    1. ImmersionBar.with( this)
    2. .transparentStatusBar() //透明状态栏,不写默认透明色
    3. .transparentNavigationBar() //透明导航栏,不写默认黑色(设置此方法,fullScreen()方法自动为 true)
    4. .transparentBar() //透明状态栏和导航栏,不写默认状态栏为透明色,导航栏为黑色(设置此方法,fullScreen()方法自动为 true)
    5. .statusBarColor(R.color.colorPrimary) //状态栏颜色,不写默认透明色
    6. .navigationBarColor(R.color.colorPrimary) //导航栏颜色,不写默认黑色
    7. .barColor(R.color.colorPrimary) //同时自定义状态栏和导航栏颜色,不写默认状态栏为透明色,导航栏为黑色
    8. .statusBarAlpha( 0.3f) //状态栏透明度,不写默认 0.0f
    9. .navigationBarAlpha( 0.4f) //导航栏透明度,不写默认 0.0F
    10. .barAlpha( 0.3f) //状态栏和导航栏透明度,不写默认 0.0f
    11. .statusBarDarkFont( true) //状态栏字体是深色,不写默认为亮色
    12. .flymeOSStatusBarFontColor(R.color.btn3) //修改 flyme OS 状态栏字体颜色
    13. .fullScreen( true) //有导航栏的情况下,activity 全屏显示,也就是 activity 最下面被导航栏覆盖,不写默认非全屏
    14. .hideBar(BarHide.FLAG_HIDE_BAR) //隐藏状态栏或导航栏或两者,不写默认不隐藏
    15. .addViewSupportTransformColor(toolbar) //设置支持 view 变色,可以添加多个 view,不指定颜色,默认和状态栏同色,还有两个重载方法
    16. .titleBar(view) //解决状态栏和布局重叠问题,任选其一
    17. .titleBarMarginTop(view) //解决状态栏和布局重叠问题,任选其一
    18. .statusBarView(view) //解决状态栏和布局重叠问题,任选其一
    19. .fitsSystemWindows( true) //解决状态栏和布局重叠问题,任选其一,默认为 false,当为 true 时一定要指定 statusBarColor(),不然状态栏为透明色,还有一些重载方法
    20. .supportActionBar( true) //支持 ActionBar 使用
    21. .statusBarColorTransform(R.color.orange) //状态栏变色后的颜色
    22. .navigationBarColorTransform(R.color.orange) //导航栏变色后的颜色
    23. .barColorTransform(R.color.orange) //状态栏和导航栏变色后的颜色
    24. .removeSupportView(toolbar) //移除指定 view 支持
    25. .removeSupportAllView() //移除全部 view 支持
    26. .navigationBarEnable( true) //是否可以修改导航栏颜色,默认为 true
    27. .navigationBarWithKitkatEnable( true) //是否可以修改安卓 4.4 和 emui3.1 手机导航栏颜色,默认为 true
    28. .fixMarginAtBottom( true) //已过时,当 xml 里使用 android:fitsSystemWindows="true"属性时,解决 4.4 和 emui3.1 手机底部有时会出现多余空白的问题,默认为 false,非必须
    29. .addTag( "tag") //给以上设置的参数打标记
    30. .getTag( "tag") //根据 tag 获得沉浸式参数
    31. .reset() //重置所以沉浸式参数
    32. .keyboardEnable( true) //解决软键盘与底部输入框冲突问题,默认为 false,还有一个重载方法,可以指定软键盘 mode
    33. .keyboardMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE) //单独指定软键盘模式
    34. .setOnKeyboardListener( new OnKeyboardListener() { //软键盘监听回调
    35. @Override
    36. public void onKeyboardChange(boolean isPopup, int keyboardHeight) {
    37. LogUtils.e(isPopup); //isPopup 为 true,软键盘弹出,为 false,软键盘关闭
    38. }
    39. })
    40. .init(); //必须调用方可沉浸式

关闭销毁

  • 在 activity 的 onDestroy 方法中执行

      ImmersionBar.with(this).destroy(); //必须调用该方法,防止内存泄漏

建议在 BaseActivity 中初始化和销毁

  1. public class BaseActivity extends AppCompatActivity {
  2. private ImmersionBar mImmersionBar;
  3. @Override
  4. protected void onCreate(@Nullable Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. mImmersionBar = ImmersionBar.with( this);
  7. mImmersionBar.init(); //所有子类都将继承这些相同的属性
  8. }
  9. @Override
  10. protected void onDestroy() {
  11. super.onDestroy();
  12. if (mImmersionBar != null)
  13. mImmersionBar.destroy(); //必须调用该方法,防止内存泄漏,不调用该方法,如果界面 bar 发生改变,在不关闭 app 的情况下,退出此界面再进入将记忆最后一次 bar 改变的状态
  14. }
  15. }

http://p.codekk.com/detail/Android/gyf-dev/ImmersionBar

想看详细的到这个网址,我也是参照的大神的,因为我太懒了。


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Unity沉浸状态栏是指在使用Unity引擎开发应用程序时,可以隐藏或者自定义应用程序的状态栏。在移动设备上,状态栏通常包含手机的信号、电池信息等系统图标。通过实现沉浸状态栏,开发者可以使应用程序在全屏状态下运行,更好地提供用户体验。 在Unity中,实现沉浸状态栏可以通过以下步骤进行: 首先,开发者需要在Unity中创建一个全屏的视图,包括一整块可以占满屏幕的画布。 然后,通过调用Unity的API函数,可以隐藏状态栏。在Android平台上,可以使用Application类的方法SetStatusBarHidden()将状态栏隐藏起来,并且设置为全屏状态。在iOS平台上,可以使用Screen类的方法SetStatusBarHidden()来隐藏状态栏。 此外,也可以自定义状态栏的样,使其与应用程序的设计风格相符。例如,在Android平台上,可以使用Unity提供的插件设置状态栏的颜色、字体颜色等属性。 需要注意的是,沉浸状态栏功能在不同的平台上具有不同的实现方法和限制。为了确保应用程序的兼容性和稳定性,在使用沉浸状态栏的时候,开发者需要根据不同的平台和设备进行适配和测试。 综上所述,Unity沉浸状态栏是通过隐藏或自定义状态栏,在应用程序运行时提供更加全屏的体验。开发者可以通过Unity的API函数实现沉浸状态栏,并根据需要进行定制,提升应用程序的用户体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值