如何在不添加活动的情况下添加用于在片段之间滑动的viewPager



我正在开发一个Kotlin应用程序,在某个时候我想实现viewPager来在片段之间滑动。我有一个活动要通过导航图导航到应用程序的其余部分。我还没有真正理解这种刷单应该如何工作。

我的问题是,除了pageAdapter之外,我还需要实现一个新的活动吗?这个活动将如何与主要活动合作?我的应用程序目前有一个启动屏幕,之后我想在碎片之间使用滑动模式。

我想实现viewPager来在片段之间滑动。

不错的

我有一个活动要通过导航图导航到应用程序的其余部分。

冷却

除了pageAdapter之外,我还需要实现一个新的活动吗?

这个活动将如何与主要活动合作?

没有第二个活动,那么它就不需要"合作">

我想在片段之间使用滑动模式。

https://gist.github.com/Zhuinden/c643f03a023a9cbe83fff6c75c948d3b

class MyFragmentPagerAdapter(
private val context: Context,
fragmentManager: FragmentManager
) : FragmentPagerAdapter(fragmentManager) {
override fun getCount() = 2
override fun getItem(position: Int) = when(position) {
0 -> FirstFragment()
1 -> SecondFragment()
else -> throw IllegalStateException("Unexpected position $position")
}
override fun getPageTitle(position: Int): CharSequence = when(position) {
0 -> context.getString(R.string.first)
1 -> context.getString(R.string.second)
else -> throw IllegalStateException("Unexpected position $position")
}
}
class ParentFragment: Fragment() {
override fun onCreateView(...) = ...
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val viewPager = view.findViewById(R.id.view_pager)
viewPager.adapter = MyFragmentPagerAdapter(requireContext(), childFragmentManager)
tabLayout.setupWithViewPager(viewPager)
}
}

试试这个

在您的视图中Pager

class pageradapter (fm: FragmentManager) : FragmentStatePagerAdapter(fm){
override fun getItem(position: Int): Fragment {
when(position){
0-> return fragment1()
1-> return fragment2() // you can add more if you have more fragments
else-> return fragment3()
}
}
override fun getCount(): Int {
return 3   
number of fragments that you have so the swiping could work
}

在你的碎片1、2或3中。。。etc'

class fragment1 : Fragment() {

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment1, container, false)
// write your codes 
}

在启动屏幕后的"活动"中

class MainActivity : AppCompatActivity(){
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main4)
val adapter = pageradapter(supportFragmentManager)
val pager = findViewById<View>(R.id.pager) as ViewPager
pager.adapter = adapter
}

最新更新