背景:我在我的应用程序中有一个
这种方法对
DropShadowFrameLayout
,它是一个容器,仅用于在其子视图上绘制阴影。就像ListView
上下的阴影一样。
它基于这篇文章:http://proandroiddev.blogspot.ru/2012/01/android-design-tip-drop-shadows-on.html
Cyril Mottier也建议使用相同的方法:http://cyrilmottier.com/2012/06/08/the-making-of-prixing-3-polishing-the-sliding-app-menu/
它只是覆盖了dispatchDraw(Canvas canvas)
来在它的子视图上绘制阴影位图。
VerticalViewPager
(https://github.com/castorflex/VerticalViewPager),它位于DropShadowFrameLayout
内部,问题是它加深了视图层次结构(已经很复杂了),导致滚动出现故障。
我尝试过:决定通过将阴影绘制代码直接移动到ViewPager
的dispatchDraw(Canvas canvas)
中来摆脱DropShadowFrameLayout
。问题在于ViewPager
只在最初可见的子元素上绘制阴影,当我滚动它时,阴影会随之移动。当然,这不是我期望的行为,因为阴影必须保持静止,而子视图则移动。这种方法对
ListView
效果很好。
问题是:我如何将此方法应用于ViewPager
?或者还有其他性能相等的做法吗?或者,至少,为什么ViewPager
会表现出这种行为?