У меня есть ViewPager
и кнопка плавающего действия в моем MainActivity
.Каждый фрагмент в ViewPager
представляет собой 6x6 GridLayout
.При нажатии кнопки, я хочу начать анимацию перемещения ImageView
внутри GridLayout
.Начальная и целевая позиции предварительно определены в списке.
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)
}
Анимация работает, как и ожидалось, но проблема в том, что она работает только на первой странице.Когда я переключаюсь на другие страницы и нажимаю кнопку, ничего не происходит.Когда я возвращаюсь на первую страницу, тоже ничего не происходит.Может кто-нибудь объяснить, почему это так?Как мне это исправить?Спасибо.