Giter Site home page Giter Site logo

Comments (4)

hi-dhl avatar hi-dhl commented on May 21, 2024

@shenyunhuan 非常感谢你的反馈,我会尽快修复,有两个几个问题咨询一下:

  1. 「 viewpager2 包含 两个 Fragment 」 在 viewpager2 之间滑动有问题吗?
  2. 在 tab 上切来切去,我理解的是 包含 viewpager2 的页面 和 不包含 viewpager2 的页面,它们之间互相切换会报错

from binding.

shenyunhuan avatar shenyunhuan commented on May 21, 2024

@shenyunhuan 非常感谢你的反馈,我会尽快修复,有两个几个问题咨询一下:

  1. “ viewpager2包含两个片段”在viewpager2之间滑动有问题吗?
  2. 在tab上切来切去,我理解的是是包含viewpager2的页面和不包含viewpager2的页面,它们之间互相切换会报错

1、在一个Tab内,滑动无问题,
2、我有四个Tab,左边两个tab包含viewpager2的页面,右边不包含,没有从第一个Tab的第二个Fragment滑到第二个Tab的联动效果,只有一个包含了viewpager2的Tab改造了,但切到这个页面切来切去就报错

from binding.

hi-dhl avatar hi-dhl commented on May 21, 2024

大概理解了你的意思,我写个 demo 试试看

from binding.

hi-dhl avatar hi-dhl commented on May 21, 2024

@shenyunhuan 非常感谢你的反馈,我会尽快修复,有两个几个问题咨询一下:

  1. “ viewpager2包含两个片段”在viewpager2之间滑动有问题吗?
  2. 在tab上切来切去,我理解的是是包含viewpager2的页面和不包含viewpager2的页面,它们之间互相切换会报错

1、在一个Tab内,滑动无问题,
2、我有四个Tab,左边两个tab包含viewpager2的页面,右边不包含,没有从第一个Tab的第二个Fragment滑到第二个Tab的联动效果,只有一个包含了viewpager2的Tab改造了,但切到这个页面切来切去就报错

你好,我按照你说的,写了一个 demo:

  1. 底部有三个 tab
  2. 其中一个 tab 包含 ViewPager2
  3. ViewPager2 嵌套 2 个 Fragment

滑动并没有出现问题:

demo 体验入口地址: 「第一个 Activity」 -> 「 ViewBinidng示例」 -> 「 在 ViewPager2 中使用」 可以滑动体验一下

代码地址如下所示,如果有时间,辛苦看一下,是否和你的架构一致

class ViewPager2Activity : AppCompatActivity(), View.OnClickListener {
val binding: ActivityViewpagerBinding by viewbind()
var fragment1: Fragment1 = Fragment1()
var fragment2: Fragment2 = Fragment2()
var fragment3: Fragment3 = Fragment3()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
with(binding) {
val fragmentTransaction = supportFragmentManager.beginTransaction()
fragmentTransaction.add(R.id.container, fragment3)
fragmentTransaction.add(R.id.container, fragment2)
fragmentTransaction.add(R.id.container, fragment1)
hideFragment(fragmentTransaction)
fragmentTransaction.show(fragment1)
fragmentTransaction.commit()
getViews().forEach {
it.setOnClickListener(this@ViewPager2Activity)
}
}
}
private fun getViews() = with(binding) {
arrayListOf<View>(
tab1,
tab2,
tab3
)
}
companion object {
fun startActivity(activity: Activity) {
activity.startActivity(Intent(activity, ViewPager2Activity::class.java))
}
}
override fun onClick(v: View) {
val fragmentTransaction = supportFragmentManager.beginTransaction()
hideFragment(fragmentTransaction)
with(binding) {
when (v) {
tab1 -> {
fragmentTransaction.show(fragment1)
}
tab2 -> {
fragmentTransaction.show(fragment2)
}
tab3 -> fragmentTransaction.show(fragment3)
else -> {
}
}
}
fragmentTransaction.commitNow()
}
private fun hideFragment(fragmentTransaction: FragmentTransaction) {
getViews().forEach {
fragmentTransaction.hide(fragment1)
fragmentTransaction.hide(fragment2)
fragmentTransaction.hide(fragment3)
}
}

from binding.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.