我正在编写一个需要实施Google Play商店滚动实施的应用程序。有可用于实现它的示例库,如
另外我需要在这里实现一些额外的效果。
如此提及,屏幕上有三个可用的视图。 (图片A)
这里我需要相同的视差效果(如支持的库),
这里有什么建议吗?
编辑:我已完成的工作更新 我能够实现一些如何使用kmshack解决方案,但有点破解。由于滚动只允许列表视图有足够的子项滚动,所以我添加了一些空视图并在Adapter.getView中进行管理。
但这不是完整的解决方案,因为应用程序列表可能没有任何要显示的项目,这里滚动也应该有效。有没有办法让它成为可能,而不添加假孩子?
答案 0 :(得分:2)
有很多方法可以做到这一点,但基本上:在主要的可滚动视图中,为A和B留出2个空格,但将它们放在可滚动视图之外,然后收听滚动事件并翻译和/或相应地改变A和B.
这同样适用于任何类型的视差效果,你只需翻译一个非线性"给出深度幻觉的方式。
对于某些示例,您可以查看此G+ post by Roman Nurik。
一些技巧:
View
。getViewTreeObserver()
。addOnGlobalLayoutListener()
View.setY()
和/或View.setTranslationY()
以及类型为View.setLayerType()
或LAYER_TYPE_HARDWARE
的LAYER_TYPE_SOFTWARE
:它会保存位图您的视图并移动它而不是每次都重新绘制它,但更新视图将更加昂贵,因此请考虑使用它(可能只在滚动期间)。