java - Kotlin ViewPager2 : Class 'ScreenSlidePagerAdapter' is not abstract and does not implement base class member

标签 java android android-studio android-fragments kotlin

嗨, 我正在学习如何制作 Android 应用程序,并尝试添加 viewpager...我一直在关注这里的教程:https://developer.android.com/training/animation/screen-slide-2

但是我似乎收到错误:类“ScreenSlidePagerAdapter”不是抽象的,并且没有实现抽象基类成员@NonNull public abstract fun createFragment(p0:Int):在androidx.viewpager2.adapter中定义的 fragment .FragmentStateAdapter

我的代码与教程 ScreenSlidePagerActivity 类几乎相同,所以我不确定问题是什么!

package com.main.treasurex.ui.home


import android.os.Bundle
import androidx.fragment.app.FragmentActivity
import androidx.fragment.app.Fragment
import androidx.viewpager2.widget.ViewPager2
import com.main.treasurex.R
import androidx.viewpager2.adapter.FragmentStateAdapter



/**
 * The number of pages (wizard steps) to show in this demo.
 */
private const val NUM_PAGES = 5

class SlideFragmentActive : FragmentActivity() {

    /**
     * The pager widget, which handles animation and allows swiping horizontally to access previous
     * and next wizard steps.
     */
    private lateinit var mPager: ViewPager2

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.fragment_sample)

        // Instantiate a ViewPager and a PagerAdapter.
        mPager = findViewById(R.id.pager)

        // The pager adapter, which provides the pages to the view pager widget.
        val pagerAdapter = ScreenSlidePagerAdapter(this)
        mPager.adapter = pagerAdapter
    }

    override fun onBackPressed() {
        if (mPager.currentItem == 0) {
            // If the user is currently looking at the first step, allow the system to handle the
            // Back button. This calls finish() on this activity and pops the back stack.
            super.onBackPressed()
        } else {
            // Otherwise, select the previous step.
            mPager.currentItem = mPager.currentItem - 1
        }
    }

    /**
     * A simple pager adapter that represents 5 ScreenSlidePageFragment objects, in
     * sequence.
     */
    private inner class ScreenSlidePagerAdapter(fa: FragmentActivity) : FragmentStateAdapter(fa) {

        override fun getItemCount(): Int = NUM_PAGES

        override fun getItem(position: Int): Fragment = SlideFragment()
    }
}


依赖关系是

dependencies {
//noinspection GradleCompatible
implementation "androidx.viewpager2:viewpager2:1.0.0-beta04"

implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.core:core-ktx:1.0.2'
implementation 'com.google.android.material:material:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.navigation:navigation-fragment:2.0.0'
implementation 'androidx.navigation:navigation-ui:2.0.0'
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
implementation 'androidx.navigation:navigation-fragment-ktx:2.0.0'
implementation 'androidx.navigation:navigation-ui-ktx:2.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'

}

感谢您的所有帮助!!!!!!! 急诊室

最佳答案

/**
     * A simple pager adapter that represents 5 ScreenSlidePageFragment objects, in
     * sequence.
     */
    private inner class ScreenSlidePagerAdapter(fa: FragmentActivity) : FragmentStateAdapter(fa) {

        override fun createFragment(position: Int): Fragment {
            return ScreenSlidePageFragment()
        }

        override fun getItemCount(): Int = NUM_PAGES

        override fun getItem(position: Int): Fragment = SlideFragment()
    }

关于java - Kotlin ViewPager2 : Class 'ScreenSlidePagerAdapter' is not abstract and does not implement base class member,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58155132/

相关文章:

java - 为什么我的 Java 应用程序可以在本地运行,但在交付到 IBM Cloud 时却出现此错误

android - 错误:无法下载ecj.jar(org.eclipse.jdt.core.compiler:ecj:4.4):无缓存版本可用于离线模式

安卓2.2。如何设置串口(com、rfcomm)端口?

java - 如何将 Firebase 实时数据库中的所有数据显示到 TextView 中

java - 在 Android 模拟器 LibGDX 中运行应用程序时分辨率不正确

android-studio - "Cannot access android.arch.lifecycle.ViewModelStoreOwner"在 android studio 3.2

java - 当我将 ByteBuffer 转换为 String 时,为什么会得到很多不需要的输出?

java - Java复制文件的方法

java - 如何检查列表是否已初始化,其中包含 0 个元素?

Android RecyclerView ItemTouchHelper 恢复滑动和恢复 View 持有者