Skip to content
gyf-dev edited this page Mar 25, 2022 · 49 revisions

3.2.2(2022-03-24)

  • 修复结合jetpack navigation使用,内存泄漏问题

3.2.1(2022-02-15)

3.2.0(2022-02-10)

  • 迁移到AndroidX
  • 仓库迁移到mavenCentral,依赖变更,请注意
  • 适配Android 11 Api
  • 适配手势导航
  • 导航栏高度优化
  • issues bug fix

3.0.0

  • 更新说明请参考3.0.0beta系列
  • 修复3.0.0-beta07的问题,参考382
  • Fragment增加是否为唯一实例的参数(isOnly),不影响已有功能
  • Fragment增加destroy方法,可调用可不调用,不影响已有功能

3.0.0-beta07(2019-08-23)

  • 增强一些功能,参考341、statusBarDarkFont默认是0.2f了,以及静态方法setFitsSystemWindows
  • 修复内存泄漏,参考350
  • 代码结构调整

3.0.0-beta05(2019-05-31)

  • 修复issues #333 bug
  • 关于隐藏导航栏,比如已经隐藏导航栏情况下,你弹出输入法再关闭或者弹出新界面包含Dialog,然后再关闭,在之前的版本都会导致导航栏重新出现,这个版本做了些处理,关闭之后将不会再出现了

3.0.0-beta04(2019-05-27)

  • 修复titleBar里的view高度是wrap_content存在问题
  • 其他细节调整

3.0.0-beta03(2019-05-14)

  • 增加setOnBarListener方法,如果设置了,第一次调用和横竖屏切换都会触发此方法,用此方法可以做一些横屏的时候控件被刘海屏遮挡的问题,具体使用参考Demo的MainActivity
  • 增加barEnable方法,是否可以沉浸式,详见方法注释
  • 增加getNotchHeight方法,获得刘海屏高度,使用见注释
  • 更新setTitleBar、setTitleBarMarginTop、setStatusBarView方法

3.0.0-beta02(2019-04-26)

  • 调整静态方法setTitleBar和setTitleBarMarginTop为可变参数

3.0.0-beta01(2019-04-15)

  • 全新的包名,由com.gyf.barlibrary改为com.gyf.immersionbar
  • 全新的ImmersionBar实例化实现,使用起来更方便
  • 删除destroy方法,在Activity、Fragment以及DialogFragment里使用再也不用写destroy()方法了,不过在dialog里销毁还是要destroy,则改为静态方法ImmersionBar.destroy(Activity activity,Dialog dialog)
  • 在非Activity里使用,再也不需要先在Activity里先初始化了
  • 把Fragment快速实现提取为单独的包,依赖为implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0-beta01'
  • 增加kotlin扩展依赖,使用请参考demo,依赖为implementation 'com.gyf.immersionbar:immersionbar-ktx:3.0.0-beta01'
  • 增加导航栏显示与隐藏监听,目前只支持带有导航栏的小米和华为手机,设置方法为setOnNavigationBarListener(onNavigationBarListener)
  • 修复华为部分手机隐藏导航栏之后依然能获取到导航栏高度的问题
  • 修复内部方法checkFitsSystemWindows在dialog使用报空指针的问题

2.3.3

  • 增加状态栏字体和导航栏图标根据颜色自动变色(白色和黑色)方法
  • 修复今日头条适配方案一起使用造成状态栏与布局之间有间隙的问题
  • 增加SimpleImmersionFragment类,与ImmersionFragment类似
  • 其他问题修复(时间长了,忘记了)

2.3.2

  • 重构并优化代码(重点优化android4.4与emui3手机和软键盘与输入框相关代码)
  • 适配androidP以及刘海屏
  • 增加ImmersionFragment类,让你在Fragment里使用更简单,只需要在initImmersionBar方法中实现即可,再也不需要一点点去配置了。也再不用手动调用destroy方法啦,如果没法继承ImmersionFragment类,可以参考ImmersionFragment类实现ImmersionOwner接口
  • 增加修改导航栏图标颜色的功能:navigationBarDarkIcon()
  • 增加刘海屏的判断:hasNotchScreen()
  • 解决部分全面屏手机与今日头条适配方案一起使用造成状态栏与布局之间有间隙的问题
  • 关于fitsSystemWindows(true)、statusBarView(view)、titleBar(view)以及titleBarMarginTop(view)方法,都是为了解决状态栏与布局顶部重叠问题,2.3.2版本也做了限制。谁是第一个调用的,就以第一个调用的为准,比如你是这样写的titleBar(view).fitsSystemWindows(true).statusBarView(view).init(),那么fitsSystemWindows(true)和statusBarView(view)将不会生效.

2.3.0

  • 解决使用插件化框架replugin时,获得状态栏、导航栏高度以及导航栏宽度为0的问题
  • 解决华为emui3.0手机手动隐藏导航栏,导航栏背景依然可见的问题
  • 修复第三方手机刷miui或者flyme,获得版本号异常的问题

2.2.9

  • 解决2.2.8中titleBar和setTitleBar测量高度不准确的问题
  • 重构keyboardEnable代码,适配了华为手动隐藏导航栏后,界面底部有输入框时,弹出输入法,位置不准确的问题
  • 适配华为emui3.1或者3.0手机,手动隐藏导航栏后,导航栏背景无法消失的问题
  • 修改DialogFragment沉浸式的实现,由之前的ImmersionBar.with(this, dialog, "flag").init(),变成ImmersionBar.with(this, dialog).init(),删除了第三个参数,其他dialog不变
  • 增加软键盘弹出回调监听,setOnKeyboardListener()
  • 增加keyboardMode方法,单独设置软键盘模式
  • 增加fitsSystemWindows的重载方法,使用fitsSystemWindows解决布局重叠问题,如果界面支持侧滑返回,状态栏也会跟着滑动啦

2.2.8

  • 修复keyboardEnable方法和KeyboardPatch类导致的bug,比如界面错乱等
  • titleBar和静态方法setTitleBar指定的view的高度支持warp_content了
  • 增加第六种解决布局重叠问题,titleBarMarginTop()以及静态方法setTitleBarMarginTop,原理是设置view距离顶部的距离(arginTop)是状态栏的高度
  • 标记fixMarginAtBottom方法过时
  • 增加第三方框架Fragmentation实现沉浸式的demo

2.2.7

  • 增加Dialog沉浸式,使用ImmersionBar.with(this, dialog, "tag").init();
  • 增加隐藏状态栏hideStatusBar()静态方法,因为使用hide()方法隐藏状态栏的时候,当输入框弹出,状态栏会恢复显示

2.2.6

  • 标记ImmersionFragment为过时,如果Fragment是配合viewpager使用的话,请自行使用懒加载方式实现,或者参考demo中的BaseLazyFragment这个类
  • 修复有可能内存溢出的问题,原因是之前destroy方法中未把Activity引用置为null
  • 修复vivo手机没有导航栏还能获取导航栏的高度的问题
  • 增加navigationBarWithKitkatEnable(true)方法,是否可以修改安卓4.4和emui3.1手机导航栏颜色,默认为true
  • 增加ImmersionBar.setTitleBar(this, view)静态方法
  • 增加ImmersionBar.setStatusBarView(this,view)静态方法

2.2.5

  • 增加keyboardEnable重载方法,可以指定软键盘模式了
  • 增加navigationBarEnable(true)方法,是否支持导航栏变色,默认true
  • 增加fixMarginAtBottom(false)方法,当xml里使用android:fitsSystemWindows="true"属性时,解决4.4和emui3.1手机底部有时会出现多余空白的问题,默认为false,非必须

2.2.4

  • 修改底部输入框与软键盘冲突解决方法,可以直接在ImmersionBar类中调用,keyboardEnable(true)
  • 底部输入框与软键盘冲突解决方法中,增加方法KeyboardPatch.patch(this).enable();,省去指定当前布局根节点的步骤

2.2.3

  • 修复部分魅族手机不能修改状态栏字体颜色的bug
  • 在ImmersionFragment类中增加immersionEnabled()方法
  • 删除setViewSupportTransformColor(view)方法
  • 删除removeSupportView()方法
  • 优化初始化代码

2.2.2

  • 重点更新Fragment的使用,脱离依赖Activity,直接指定当前对象啦,比如ImmersionBar.with(this).init(),请参考demo
  • 增加方法titleBar(),解决布局与状态栏重叠又多一种方法啦,这种更简单
  • 增加方法supportActionBar(),在ActionBar的标题栏使用更方便
  • 增加方法statusBarDarkFont(true, 0.2f),根据设备是否支持状态栏字体变色来显示透明度
  • 增加方法reset(),一键重置所有参数
  • 增加方法addTag(),给页面设置tag来标识这页bar的属性
  • 增加方法getTag(),根据tag恢复到某次调用时的bar属性
  • 修复在YunOS设备中调用修改状态栏字体颜色闪退的bug

2.2.1

  • 修复flymeOS不能修改状态栏字体的bug
  • 增加flymeOSStatusBarFontColor()方法,修改flymeOS状态栏字体颜色

2.2.0

  • 修复 #11 bug,修复有导航栏的4.4手机,使用android:fitsSystemWindows="true"时底部会出现多余的空白处
  • 修复 #12 bug,修复没有导航栏的4.4手机,使用fitsSystemWindows(true)方法,导致不起作用的bug

2.1.9

  • 修复三星GT-N7102(android 4.3)手机状态栏为白色的bug

2.1.8

  • 增加一些设置颜色的重载方法,设置颜色的时候可以更方便,比如设置状态栏可以这样设置statusBarColor(R.color.white)或者statusBarColor("#ffffff")或者这样statusBarColorInt(0xffffffff)

2.1.7

  • 修复不能在魅族手机上修改状态栏字体为深色的bug

2.1.6

  • 修改华为emui 3.1判断,使其更为严谨
  • 增加isSupportStatusBarDarkFont()静态方法,判断当前手机支不支持状态栏字体变色

2.1.5

  • 解决华为emui 3.1无法沉浸的问题
  • 解决issues里用户反馈的问题

2.1.4

  • 增加KeyboardPatch类,解决底部EditText和软键盘的问题

2.1.3

  • 增加ImmersionFragment类,使沉浸式在fragment里使用更方便
  • 增加了statusBarView(View view)方法,解决布局与状态栏重叠又多一种方法啦(下面列了四种方式)
  • 修复4.4以下导致显示有问题的bug

2.1.2

  • 修复4.4旋转屏幕为横屏时右边布局被导航栏挡住的问题
  • 删除调试信息

2.1.1

  • 修复4.4旋转屏幕为横屏时底部出现多余的导航栏
  • 修复4.4初始化沉浸式有时候不能实现效果的问题

2.1.0

  • 全新的链式调用,更方便,删除了1.x.x版本Api
  • 修复了4.4不能时刻改变颜色的bug
  • 修复了4.4 activity全屏时底部被导航栏遮挡的bug
  • 修复状态栏和布局重叠的问题,调用fitsSystemWindows(true)即可,必须指定状态栏的颜色statusBarColor()
  • 增加了View支持变色功能
  • 删除SystemBarTint的库的依赖
Clone this wiki locally