在Android S+中,当ListView或Recyclerview滚动到边界并继续滚动时,会触发“overscroll”效果,使屏幕内容超出屏幕边界。这种滑动操作会在Canvas上绘制一些边界效果,例如模糊阴影和拉伸效果。然而,这种绘制过程在Android S+的某些设备上并不完整,会导致异常。
解决此问题的方法是将硬件加速禁用掉,这可以通过以下方法实现:
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { view.setLayerType(View.LAYER_TYPE_SOFTWARE, null); }
这会将视图的层类型设置为软件层。这样可以防止硬件加速绘制‘over-scroll’效果,并且可以正常绘制边界效果。