diff --git a/README.md b/README.md index 70d824c9..5c29e95e 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,7 @@ - 无论是[**Animation**](https://www.yuque.com/razerdp/basepopup/mg3bcw#onCreateShowAnimation)还是[**Animator**](https://www.yuque.com/razerdp/basepopup/mg3bcw#onCreateShowAnimator),只需要跟您平时一样写动画,就可以完成Popup的动效设计了,不需要xml不需要关心别的兼容性问题 - 背景与主体分离,无论是[**背景模糊**](https://www.yuque.com/razerdp/basepopup/udccdq#12bedc89),亦或是[**背景颜色**](https://www.yuque.com/razerdp/basepopup/gscx3g#aiRz7),甚至[**把背景换成您的View**](https://www.yuque.com/razerdp/basepopup/gscx3g#e96cp),都可以通过简单的设置完成,主体与背景隔离,不用担心事件的问题 - 还在为Popup的触摸事件头疼吗?BasePopup帮你解决烦恼~返回键控制、外部点击透传、点击外部是否消失都只需要您动动手指头完成配置即可 - - PopupWindow自动锚定AnchorView,滑动到屏幕外自动跟随AnchorView消失,不需要复杂的逻辑设置,只需要通过[**Link**](https://github.com/razerdp/BasePopup/wiki/API#linktoview-anchorview)方法告诉BasePopup + - PopupWindow自动锚定AnchorView,滑动到屏幕外自动跟随AnchorView消失,不需要复杂的逻辑设置,只需要通过[**linkTo**](https://www.yuque.com/razerdp/basepopup/api)方法告诉BasePopup即可帮您完成 - 简单的PopupWindow不想新建一个类,希望拥有链式调用?没问题,[**QuickPopupBuilder**](https://www.yuque.com/razerdp/basepopup/ob329t)为此而生,相信你会越用越爱~
@@ -133,6 +133,36 @@ **Candy开发日志请查看dev分支**[**branch-dev**](https://github.com/razerdp/BasePopup/tree/dev) +* **【Release】2.2.3**(2020/05/07) + * 我们针对2.2.2系列问题进行了修复,同时增加了一些新的功能,欢迎更新到最新版本~ + * **新增功能/方法:** + * 新增`setPopupGravityMode()`:您可以单独设置BasePopup对齐方式而不需要始终带上Gravity + * 新增`OnPopupWindowShowListener`接口:在BasePopup显示后回调该接口,当回调该方法时意味着弹窗已经完成,此时ui已经显示在屏幕上 + * 新增`bindLifecycleOwner()`:您现在可以自由绑定您的LifecycleOwner + * 新增`onPreShow()`回调:在BasePopup弹出之前回调该方法,如果返回false,则不会弹出 + * 新增`onShowing()`回调:在BasePopup显示后回调该方法,当回调该方法时意味着弹窗已经完成,此时ui已经显示在屏幕上 + * 新增`onPopupLayout()`回调:如果弹窗与锚点View关联,当BasePopup在布局的时候回调该方法,分别返回BasePopup在屏幕上的位置和锚点View在屏幕上的位置 + * 新增`computeGravity()`:配套`onPopupLayout()`回调,计算BasePopup中心点在锚点View的方位。 + * **弃用方法及更替:** + * `BasePopupWindow#dismissWithOutAnimate()`,请使用**dismiss(false)** + * `BasePopupWindow#setPopupWindowFullScreen()`,请使用**setOverlayStatusbar()** + * `QuickPopupConfig#dismissOnOutSideTouch()`,请使用**outSideDismiss()** + * `QuickPopupConfig#allowInterceptTouchEvent()`,请使用**outSideTouchable()** + * **优化:** + * 优化DecorView的查询方式,原逻辑会缓存下查询后的DecorView,但可能会因为该DecorView宿主已经销毁或者变更而导致显示错误 + * 支持的最低版本降至Api 16 + * 放弃反射WindowManager的方式,采取ContextWrapper代理,不再担心遭遇黑灰名单封锁了~感谢[@xchengDroid](https://github.com/xchengDroid)提供的方案 + * **bug修复:** + * 修复覆盖状态栏时事件传递存在偏移的情况 + * 修复`isShowing()`存在空指针的情况(issue:[#267](https://github.com/razerdp/BasePopup/issues/267)) + * 修复`setOverlayStatusbar(false)`情况下与Anchor关联时显示位置错误的问题 + * 修复部分引用没有置空导致**可能**存在的内存泄漏问题(事实上并没发现泄漏) + * 修复BasePopup弹出时,Activity弹出的输入法显示在BasePopup下层的问题 + * 修复全屏Activity判断错误的问题 + * 修复QuickPopupConfig配置缺漏的问题 + * 修复未弹窗时直接调用dismiss(),然后首次调用showPopupWindow()失效的问题 + * fixed issue:[#224](https://github.com/razerdp/BasePopup/issues/224) + * **【Release】2.2.2.2**(2020/03/01) * 修复一个很严重的可能会导致崩溃的问题 * 重现方式:dismiss动画没执行完的情况下finish了activity,会引发空指针崩溃 @@ -145,36 +175,6 @@ * **【Release】2.2.2.1**(2020/02/26) * 修复输入法自动弹出后不能再次弹出的问题 -* **【Release】2.2.2**(2020/02/24) - * 发布2.2.2正式版,**本版本是一个重构版本,请认真阅读更新日志哦** - * **新增功能/特性:** - * 新增 `BaseLazyPopupWindow`,以后懒加载的PopupWindow只需要extend这个就可以了,旧版本的`delayInit()`已经在该版本去除 - * 增加BasePopup队列,针对outSideTouch优化 - * 适配Android 10,解决Android 10黑/灰名单的问题 - * 适配`match_parent`,现在`match_parent`将会填充剩余空间 - * 主体完全迁移至AndroidX,去除BasePopup扩展组件库,同时建议您尽快适配AndroidX - * 针对内存泄漏进行梳理,同时增加生命期监听,在`destroy`中会释放引用 - * 增加对`dialog`/`fragment`/`dialogfragment`的支持 - * 添加`setFitSize()`方法 - * `setFitSize()`:BasePopup会针对剩余空间来调整Popup的大小,因此可能出现实际显示过小的情况 - * 优化QuickPopupBuilder - * 蒙层交回给系统托管,再也不用担心为啥全面屏无法全覆盖了 - * 优化在`onCreate()`中弹窗无法弹出的问题 - * 采取[#263](https://github.com/razerdp/BasePopup/issues/263)的建议,非常感谢[@xchengDroid](https://github.com/xchengDroid)提出的建议 - * 增加`onLogInternal()`方法,您可以在这里打印BasePopupWindow执行期间的日志 - * 增加`onViewCreated()`方法,您可以在这里对ContentView进行操作,或者使用ButterKnife进行注入 - * **精简:** - * 去除onAnchorTop/onAnchorBottom方法,后续将会替换为别的方法 - * 去除`limitScreen()`方法 - * 去除扩展组件,现在主体支持AndroidX,同时不再支持Support包了 - * **bug fixed:** - * fixed [#184](https://github.com/razerdp/BasePopup/issues/184)、[#207](https://github.com/razerdp/BasePopup/issues/207)、[#210](https://github.com/razerdp/BasePopup/issues/210) - * fixed [#213](https://github.com/razerdp/BasePopup/issues/213)、[#226](https://github.com/razerdp/BasePopup/issues/226)、[#232](https://github.com/razerdp/BasePopup/issues/232) - * fixed [#236](https://github.com/razerdp/BasePopup/issues/236)、[#238](https://github.com/razerdp/BasePopup/issues/238)、[#240](https://github.com/razerdp/BasePopup/issues/240) - * fixed [#242](https://github.com/razerdp/BasePopup/issues/242)、[#244](https://github.com/razerdp/BasePopup/issues/244)、[#247](https://github.com/razerdp/BasePopup/issues/247) - * fixed [#248](https://github.com/razerdp/BasePopup/issues/248)、[#249](https://github.com/razerdp/BasePopup/issues/249)、[#260](https://github.com/razerdp/BasePopup/issues/260) - * fixed [#262](https://github.com/razerdp/BasePopup/issues/262)、[#263](https://github.com/razerdp/BasePopup/issues/263) -
### 例子预览 diff --git a/build.gradle b/build.gradle index bcc2e82d..4f02077d 100644 --- a/build.gradle +++ b/build.gradle @@ -36,10 +36,10 @@ ext { minSdkVersion = 19 minLibSdkVersion = 16 targetSdkVersion = 29 - versionCode = 104 - versionName = '2.2.3-dev03' + versionCode = 105 + versionName = '2.2.3' - candy = true + candy = false group = 'com.github.razerdp' pkg_name = 'BasePopup'