美文网首页
安卓用 Popupwindow 分离界面以消除滑动时的卡顿

安卓用 Popupwindow 分离界面以消除滑动时的卡顿

作者: 天下第九九八十一 | 来源:发表于2021-07-05 14:23 被阅读0次

之前写了一个快速设置面板,用的是最简单的scrollview+linearlayout布局方式,直接内嵌在coordinatorlayout中,发现项目一多,滚动起来就特别卡。本以为是 linearlayout 的问题,于是做了继承后将 linearlayout 替换为 listview,结果还是很卡。

用 ListView 替换 LinearLayout,中间还遇到设置子项不可见(View.GONE)后仍然占据空白空间、迂回解决(设置LayoutParameters.height=1)后layoutTransition失效、以及Seekbar滑动与列表滚动冲突的问题(虽然可用集成 ListView 在 dispatchTouchEvent 中处理解决),最后也不能显著解决卡顿问题,甚至 ListView 特殊的计算方法还会带来性能开销。

最后只能试试最后的绝招 —— 将面板视图放入Dialog中显示,发现竟然不卡了。

Popupwindow 则是更好的容器,因为它在显示设置面板的同时,允许点击外部的按钮。

须注意的是 Popupwindow 无法再嵌套 Popupwindow ,子 Popupwindow 需传入其他 anchorView 参数才能显示。

Github 里程碑:【 快速设置界面诞生!】

相关文章

网友评论

      本文标题:安卓用 Popupwindow 分离界面以消除滑动时的卡顿

      本文链接:https://www.haomeiwen.com/subject/bpzbultx.html