ViewPager2 的简单示例不起作用

问题描述 投票:0回答:1

我有一个非常简单的

ViewPager2
,但是它不起作用。我只能看到一个白色的屏幕。有人可以帮我解决这个问题吗?我相信这是
ViewPager2
最简单的基本示例,但它就是行不通。任何帮助表示赞赏。

我的适配器:

class MyAdapter(private val ctx: Context) : RecyclerView.Adapter<MyAdapter.ViewHolder>() {
    private val titles = arrayOf("ABC", "DEF", "GHCH","IJK", "LMN")

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        val view: View = LayoutInflater.from(ctx).inflate(R.layout.my_holder, parent, false)
        return ViewHolder(view)
    }

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        holder.text.text = titles[position]
    }

    override fun getItemCount(): Int {
        return titles.size
    }

    class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
        var text: TextView

        init {
            text = itemView.findViewById(R.id.titles)
        }
    }
}

支架:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <TextView
        android:id="@+id/titles"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:textSize="25sp"
        android:textColor="@android:color/black"
        android:gravity="center"
        />

</LinearLayout>

活动:

class TestActivity : AppCompatActivity() {

    private lateinit var binding: ActivityTestBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityTestBinding.inflate(layoutInflater)
        setContentView(R.layout.activity_themes)

        val viewPager2Adapter = MyAdapter(this)
        binding.viewpager.adapter = viewPager2Adapter
        binding.viewpager.registerOnPageChangeCallback(object : OnPageChangeCallback() {})
    }
}

活动 XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <androidx.viewpager2.widget.ViewPager2
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        />

</LinearLayout>
android android-viewpager android-viewpager2
1个回答
0
投票

确保 ActivityTestBinding 是从 XML 布局文件 (activity_test.xml) 正确生成的。另外,请确保正确实现 MyAdapter、MyHolder 和其他必要的类。这应该可以解决 ViewPager2 不显示内容的问题。

© www.soinside.com 2019 - 2024. All rights reserved.