我想做的就是调用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" />
没有,所以我不能调用findFragmentByID()(可以吗?)
另外我不知道给findFragmentByTag()提供什么,它总是返回null:/
解决方法:
但是,pagerAdapter.getItem(int)方法通常会创建片段的新实例,因此您可以使用HashMap存储对现有片段的引用.
// VIEwPagerAdapterprivate HashMap<Integer, Fragment> fragmentHashMap = new HashMap<>();@OverrIDepublic Fragment getItem(int position) { if (fragmentHashMap.get(position) != null) { return fragmentHashMap.get(position); } TabFragment tabFragment = new TabFragment(); fragmentHashMap.put(position, tabFragment); return tabFragment;}
然后你可以找到你的片段来调用它的方法:
FragmentAdapter fa = (FragmentAdapter)vIEwPager.getAdapter();TabFragment theFragment = (TabFragment)fa.getItem(index);theFragment.customMethod(Object obj);
您必须跟踪哪个片段与哪个索引一起使用,因为您将它们转换为特定的类以访问其方法.
总结以上是内存溢出为你收集整理的android – 在ViewPager中调用片段上的方法全部内容,希望文章能够帮你解决android – 在ViewPager中调用片段上的方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)