Sie müssen auf die Fragments
zugreifen, die Sie in Ihrem ViewPager
verwenden.
In dieser Antwort https://stackoverflow.com/a/39274141/1559852 i zu erklären versucht, wie Sie Ihren ViewPager's
Adapter o ändern machen die Fragmente, die Sie in Ihrem ViewPager
zugänglich verwenden.
Nachdem Sie den Code in Link implementiert haben, können Sie auf Ihre Fragmente und ihre Ansichten zugreifen.
eine öffentliche Methode, um Ihre Fragmente definieren unten wie:
public View getMyFragmentView(){
return this.mView();
}
Endlich ein OnPageChangeLsitener
auf Ihre ViewPager
wie den folgenden Code hinzu.
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
// Here's your instance
final YourFragment fragment =(YourFragment)yourPagerAdapter.getRegisteredFragment(position);
final View theViewYouWantToAccess = yourFragment.getMyView();
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
bearbeiten: In Ihrem ViewPager Adapter können Sie sich registrieren die Fragment
zu SparseArray
@Override
public Fragment getItem(int position) {
final YourFragment fragment = new YourFragment();
// Register your fragment to Sparse Array here
registeredFragments.put(position, fragment);
return fragment;
}
Können Sie den Code, den Sie verwenden schreiben die Frage zu klären? – zsmb13
Wie viele Fragmente laden Sie in Viewpager? –
@JaydeepPatel 5 –