简体   繁体   English

如果对所有选项卡使用相同的片段,viewpager,recylerview不起作用

[英]viewpager,recylerview not working if using same fragment for all tabs

i am using the same fragment for all the tabs. 我为所有标签使用相同的片段。

But the problem is scroll of the recycler view of fragment working for last tab only. 但是问题是片段的回收器视图的滚动仅适用于最后一个选项卡。

Recycler view not scrolling for the previous tabs. 回收站视图不滚动到先前的选项卡。 Below is my code of the FragmentPagerAdapter: 下面是我的FragmentPagerAdapter的代码:

class DataViewPagerAdapter(fm: FragmentManager?) : FragmentStatePagerAdapter(fm) {

var fragmentList: MutableList<Fragment> = ArrayList()
var fragmentTitleList: MutableList<String> = ArrayList()

override fun getItem(position: Int): Fragment {
    return DataFragment.newInstance(position)
}

override fun getCount(): Int {
    return 3
}

override fun getPageTitle(position: Int): CharSequence? {
    return "Deepak"
}

} }

Here is my code for binding adapter: 这是绑定适配器的代码:

 var adapter = DataViewPagerAdapter( getChildFragmentManager())

    dataViewpager.adapter = adapter
    dataViewpager.offscreenPageLimit=1
    tabLayout.setupWithViewPager(dataViewpager)

This is code of my fragment: 这是我的片段代码:

class DataFragment : Fragment() {
lateinit var recyclerView: RecyclerView
companion object {
    fun newInstance(position: Int): DataFragment {
        val fragment = DataFragment()
        val args = Bundle()
        args.putInt("KEY_POSITION", position)
        args.putInt("KEY_ID",1)
        fragment.setArguments(args)
        return fragment
    }
}

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
    var view = LayoutInflater.from(activity).inflate(R.layout.fragment_data, null)
    recyclerView = view.findViewById<RecyclerView>(R.id.recyclerView)
    var adapter = DataFragmentAdapter()
    recyclerView.layoutManager = GridLayoutManager(activity, 3)
    recyclerView.adapter = adapter
    return view;
}

} }

我不确定是否与您的问题有关,但offscreenPageLimit应该是您的适配器数量的大小。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM