繁体   English   中英

Android ViewPager-浮动操作按钮单击

[英]Android ViewPager - floating action button clicks

我的MainActivityViewPager和浮动操作按钮。 ViewPager中的每个片段都是6x6 GridLayout 单击按钮后,我想开始在GridLayout移动ImageView动画。 起始位置和目标位置在列表中预定义。

mViewPager = findViewById(R.id.pager)
mViewPager.adapter = mSectionsPagerAdapter
mViewPager.currentItem = currentFragment

val fab: View = findViewById(R.id.floatingActionButton)
fab.setOnClickListener(object : View.OnClickListener {
    override fun onClick(v: View) {
      val c =  mViewPager.currentItem
      val fromView = grid.getChildAt(fromList[c]) as ImageView
      val toView = grid.getChildAt(toList[c]) as ImageView
      val anim = TranslateAnimation(0f, toView.x - fromView.x, 0f, toView.y - fromView.y).apply {
          duration = 500
          fillAfter = false
      }
      fromView.startAnimation(anim)
}

动画可以按预期工作,但是问题在于它只能在首页上工作。 当我切换到其他页面并单击按钮时,什么也没有发生。 当我回到首页时,也没有任何反应。 有人可以解释为什么会这样吗? 我如何解决它? 谢谢。

如果您知道应用程序中有多少“页面”,则可以设置offscreenpagesize 有时发生的事情是将页面滑离焦点,这些片段的上下文可能会丢失。

viewPage.setOffscreenPageLimit(<number of fragments 'tabs'>);

在此处查看此方法的更多详细信息。

如果您有多个页面,请不要使用setOffscreenPageLimit

尝试在每个片段中添加fab.setOnClickListener

暂无
暂无

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

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