【问题标题】:How to implement customized stack view in android?如何在android中实现自定义堆栈视图?
【发布时间】:2015-03-21 19:11:05
【问题描述】:

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

向下滑动

我使用了 StackView 类,我得到的只是这个“对角线”堆栈

我希望视图是一个接一个,如上图所示。

在这里提出了类似的问题 -> Android customize stackview,但我找不到任何令人满意的答案。

我已按照建议阅读了 StackView 的代码,但老实说,我不知道如何自定义它以获得我想要的。 当我更改 PERSPECTIVE_SHIFT_FACTOR_X 的值或 PERSPECTIVE_SHIFT_FACTOR_Y 没有任何变化,我得到相同的“对角线视图”。我错过了什么吗?

提前感谢您的回答。

【问题讨论】:

标签: android android-layout customization android-view stackview


【解决方案1】:

请随意使用我的可用库here

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

【讨论】:

  • 感谢您的回答!您能否告诉我如何修改实现以支持通过一次“强力”刷卡来刷多张卡(不仅仅是一张)?
  • 真的想不出任何“快速简单”的解决方案......我认为你必须实现与此类似的东西:stackoverflow.com/a/14969879/1993204,但支持 VerticalViewPager 而不是水平的.顺便说一句,如果对您有帮助,请随时接受答案。
  • @blipinsk 我可以自定义你的库,我可以在其中左右滑动视图以丢弃?我想将堆栈视图作为 Tinder 之类的滑动功能生效。
  • 您好@BartoszLipinski 感谢您提供的很棒的图书馆。一个问题是有什么办法可以通过init进行垂直和水平翻转谢谢。
  • @Mor sure thing...它只适用于常规PagerAdapter。您可以使用例如FragmentStatePagerAdapter 并覆盖 getItem 以针对 ViewPager 中的特定位置返回不同的 Fragment
【解决方案2】:

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

StackView 使用了许多具有包可见性 并且只能在包android.widget 中使用的类。

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多