【问题标题】:How to create a custom view extending from viewpager2?如何创建从 viewpager2 扩展的自定义视图?
【发布时间】:2019-12-04 09:13:01
【问题描述】:

我想从原始 Viewpager2 扩展创建我自己的自定义 ViewPager2 视图版本,但很难做到。我收到诸如

之类的错误

不能从最终的 'androidx.viewpager2.widget.ViewPager2' 继承

有没有更好的方法从 Viewpager2 扩展,以便我可以添加 cusotm 功能?

【问题讨论】:

    标签: android android-viewpager2


    【解决方案1】:

    如果您只是因为需要不可滑动的行为而想对其进行扩展,则无需这样做。 ViewPager2 提供了很好的属性,称为:isUserInputEnabled

    【讨论】:

      【解决方案2】:

      您不能扩展 ViewPager2,因为它是链接中提到的最终类

      https://developer.android.com/reference/androidx/viewpager2/widget/ViewPager2

      【讨论】:

        【解决方案3】:

        创建一个名为“MyViewPager2”的类。 在新类中添加 ViewPager2 作为变量。 现在您可以覆盖新类中的所有 ViewPage2 方法,当然,您可以从“MyViewPager2”扩展。

        【讨论】:

          【解决方案4】:

          从消息中可以清楚地看出这是最终调用,因此您无法继承它。但是,如果您关心使用 Kotlin,您可以使用扩展来进行一些组合,但我不确定您想在这里做什么。

          【讨论】:

          • 我已经更新了这个问题。只是我想从它扩展并添加我自己的功能。并且想用java来实现它
          • 您想要什么附加功能?您是否有一些特定的事情不能用包装类来完成,这将在后台调用 Viewpager 类
          • 包装类?。这对我来说是新事物。请说明如何做到这一点,因为它可能是我正在寻找的答案。关于功能,它没有那么重要,我可以想出别的东西。只是想从 ViewPager2 创建一个自定义视图并仍然使用它的所有功能
          • Wrapper 类不是你需要知道的一些软件设计概念。它只是另一个类,您可以在其中保留 ViewPager 对象,以便您可以将 viewpager 的所有复杂性从您将使用它的活动/片段中隐藏起来。与继承相比的缺点是您将没有机会覆盖方法和访问受保护的字段。
          猜你喜欢
          • 2014-09-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-09-28
          • 2023-02-02
          • 1970-01-01
          相关资源
          最近更新 更多