fok*_*oke 3 android android-fragments android-fragmentactivity
我想做的就是调用Fragment类的函数.但我似乎无法找到一种方法来访问ViewPager中我的片段的实例.
我的活动的xml:
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" />
Run Code Online (Sandbox Code Playgroud)
没有这样我不能调用findFragmentById()(可以吗?)我也不知道给findFragmentByTag()提供什么,它总是返回null:/
Mic*_*ton 11
但是,pagerAdapter.getItem(int)方法通常会创建片段的新实例,因此您可以使用HashMap存储对现有片段的引用.
// ViewPagerAdapter
private HashMap<Integer, Fragment> fragmentHashMap = new HashMap<>();
@Override
public Fragment getItem(int position) {
if (fragmentHashMap.get(position) != null) {
return fragmentHashMap.get(position);
}
TabFragment tabFragment = new TabFragment();
fragmentHashMap.put(position, tabFragment);
return tabFragment;
}
Run Code Online (Sandbox Code Playgroud)
然后你可以找到你的片段来调用它的方法:
FragmentAdapter fa = (FragmentAdapter)viewPager.getAdapter();
TabFragment theFragment = (TabFragment)fa.getItem(index);
theFragment.customMethod(Object obj);
Run Code Online (Sandbox Code Playgroud)
您必须跟踪哪个片段与哪个索引一起使用,因为您将它们转换为特定的类以访问其方法.
归档时间: |
|
查看次数: |
9792 次 |
最近记录: |