如何在 android 中实现自定义堆栈视图?

How to implement customized stack view in android?

我在互联网上搜索过,但找不到好的解释或建议。 基本上,我想实现这个功能。

向下滑动

我使用了 StackView class,我得到的只是这个 "diagonal" 堆栈

我希望视图一个接一个地排列,如上图所示。

这里问了类似的问题 -> Android customize stackview,但我找不到满意的答案。

我已经按照建议阅读了 StackView 的代码,但老实说,我不知道如何自定义它才能获得我想要的内容。 当我更改 PERSPECTIVE_SHIFT_FACTOR_X 或的值时 PERSPECTIVE_SHIFT_FACTOR_Y 没有任何变化,我得到相同的结果 "diagonal view"。我错过了什么吗?

提前感谢您的回答。

您无法更改原始 PERSPECTIVE_SHIFT_FACTOR_X,因为它是私有字段。

StackView 使用许多 class 具有 包可见性 并且仅在包 android.widget[= 中可用29=]。

此外,其中一些 class 是预编译的,找不到源代码,因此您不能只 复制粘贴 它们并创建你自己的定制 StackView 从零开始。

您可以通过覆盖 onLayout 使视图显示在一列中,但是一旦您为它们设置动画,它们的位置就会变回默认值。遗憾的是,视图动画是在 StackView 的私有方法中完成的,因此您也无能为力。

您最好创建自己的 class 来执行此操作,并且您可以参考 StackView 源代码中使用的代码。创建这样一个 class 可能需要大量工作,而且绝对不在单个问题的范围内。

欢迎使用我的图书馆here

它完全满足您的需求,并且基于 ViewPager,因此您可以将其与您选择的典型 PagerAdapter 一起使用。