如果设置了PageTransformer,则在滚动时ViewPager似乎重新启用clipChildren

时间:2014-10-29 09:12:04

标签: android android-viewpager

我有一个ViewPager,其clipToPadding和clipChildren都设置为false。寻呼机中的项目具有阴影效果,该效果在每个项目下方绘制,超出其边界。当寻呼机是静态的时,这很好用:

enter image description here

然而,当在页面之间制作动画时,子项被剪裁,就像设置了clipChildren一样:

enter image description here

只有在设置了PageTransformer时才会出现此行为。

1 个答案:

答案 0 :(得分:13)

经过一段时间的挖掘后,我在堆栈溢出处发现了以下帖子:Do not clip ViewPager pages。虽然相似,但我没有遭受海报的NoSaveStateFrameLayout问题。然而,在对已接受答案的评论中,我发现了以下内容:

  

" [...]我的ViewPager上有一个PageTransformer,但你不可能知道。我将转换后的View上的图层设置为NONE,然后就可以了。"

所以我尝试在我的PageTransformer中执行以下操作:

public void transformPage(View view, float v) {

    view.setLayerType(View.LAYER_TYPE_NONE, null);
}

这终于解决了这个问题。应该注意的是,在创建元素时设置它确实解决问题。