搜索
您的当前位置:首页正文

慎用 AndroidX 库

来源:二三娱乐

比如我们在我们的资源布局文件当中使用 RecyclerView,如果不使用 AndroidX 的话会引用 android.support.v7.widget.RecyclerView,而如果配置工程使用 AndroidX 的话会引用 androidx.recyclerview.widget.RecyclerView

Google 希望开发者可以尽快使用 AndroidX 以获得最新的支持,但是当我尝试将我自己的项目支持库转移到 AndroidX 库时发现会有 bug。比如我在一个项目中试图实现嵌套滑动:

嵌套滑动示例

比方说上图的这个例子,一个 BottomSheet 里面有一个 RecyclerView,在下拉列表时如果拉到顶部时不松手继续向下拉,BottomSheet 就会向下滑动回到底部(BottomSheetBehavior.STATE_COLLAPSED)状态。

实现这个嵌套滑动比较简单,只要实现 NestedScrollViewonStartNestedScroll() 方法和 onNestedPreScroll() 方法就可以了。

不过当我点击 Android Studio 的 Refactor > Migrate to AndroidX... ,将项目的支持库全部更新到 AndroidX 后,再次运行 app,结果成了这个样子:

使用 AndroidX 以后的结果

经检查,发现 onStartNestedScroll() 方法和 onNestedPreScroll() 方法都没有执行。因为转移前后代码没有更改过,所以我还不知道为什么会出现这样的结果,可能是 AndroidX 的一个 bug,我想。

Top