查看Pager 2在选项卡之间滑动不工作

发布于 2025-02-04 08:36:49 字数 1460 浏览 2 评论 0原文

我的viewPager2面临一些问题。我已经使用了标准viewPager,但是由于fragmentPagerAdapter被弃用,所以我决定迁移到viewPager2。

这就是现在的样子,现在

class ViewPagerAdapter(fragment : Fragment) : FragmentStateAdapter(fragment)  {


override fun getItemCount(): Int {
    return 3
}

override fun createFragment(position: Int): Fragment {
    return when(position){
        0 -> Fragment1()
        1 -> Fragment2()
        2 -> Fragment3()
        else -> Fragment1()
    }
}


class RozliczanieFragment : Fragment() {

private var _binding: FragBinding? = null
private val binding get() = _binding!!

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
    _binding = FragBinding.inflate(inflater, container, false)

    val viewPager = binding.pager
    val pagerAdapter = ViewPagerAdapter(this)
    viewPager.adapter = pagerAdapter
    val tabs = binding.tab
    TabLayoutMediator(tabs, viewPager){
            tab, position ->
        when(position){
            0 -> tab.text = "1"
            1 -> tab.text = "2"
            2 -> tab.text = "3"
        }
    }.attach()

    return binding.root
}

我的viewPager2在另一个片段中,因此我使用fragmentStateDeadapter,并将片段传递给ARG。

问题是我无法使用Swipe 更改选项卡/片段。使用标准ViewPager一切都很好。有什么问题?我找不到有关在另一个片段内的viewPager2实现的太多信息,所以也许我做错了什么。

I'm facing some problem with my ViewPager2. I have used a standard viewpager but since the FragmentPagerAdapter is deprecated I decided to migrate to ViewPager2.

That's how it looks like now

class ViewPagerAdapter(fragment : Fragment) : FragmentStateAdapter(fragment)  {


override fun getItemCount(): Int {
    return 3
}

override fun createFragment(position: Int): Fragment {
    return when(position){
        0 -> Fragment1()
        1 -> Fragment2()
        2 -> Fragment3()
        else -> Fragment1()
    }
}


class RozliczanieFragment : Fragment() {

private var _binding: FragBinding? = null
private val binding get() = _binding!!

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
    _binding = FragBinding.inflate(inflater, container, false)

    val viewPager = binding.pager
    val pagerAdapter = ViewPagerAdapter(this)
    viewPager.adapter = pagerAdapter
    val tabs = binding.tab
    TabLayoutMediator(tabs, viewPager){
            tab, position ->
        when(position){
            0 -> tab.text = "1"
            1 -> tab.text = "2"
            2 -> tab.text = "3"
        }
    }.attach()

    return binding.root
}

My ViewPager2 is inside another fragment so i used FragmentStateAdapter and passed fragment as arg.

The problem is I can't change tab/fragment using swipe. With standard ViewPager everything was fine. What can be a problem? I couldn't find much information about the implementation of ViewPager2 inside of another fragment, so maybe I did something wrong.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文