I'll keep the question as short and simple as humanly possible.
View activeView = mViewPager.getChildAt(mViewPager.getCurrentItem());
returns the child view when the current item is 0 and 1. But if the current item is 2 it returns null
. Why is that?
edit: Let me rephrase myself. How do I get the child View of a ViewPager at any given item position?
You can create swipe views using AndroidX's ViewPager widget. To use ViewPager and tabs, you need to add a dependency on ViewPager and on Material Components to your project. To insert child views that represent each page, you need to hook this layout to a PagerAdapter .
The method isViewFromObject identifies whether a page View is associated with a given key object. A very simple PagerAdapter may choose to use the page Views themselves as key objects, returning them from instantiateItem after creation and adding them to the parent ViewGroup.
It turns out getChildAt(int)
was not the right approach. What I did was retrieve the Adapter used in the ViewPager and found my views from there:
adapter = mViewPager.getAdapter(); Fragment fragment = adapter.getItem(mViewPager.getCurrentItem()); View activeView = fragment.getView();
As already noted the viewPager will only contain the current child and adjacent children(currentItem() +/- 1) unless otherwise specified through setOffscreenPageLimit()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With