我正在使用插入FragmentStatePagerAdapter的ViewPager。每个片段都包含一个列表视图。在此列表视图中,我希望显示广告并拨打分析服务器。我只想在用户导航到片段时进行这些调用(因此我无法在Fragment中使用onCreateView或onActivityCreated事件)。是否有一个事件可以挂钩到这个目的?
更新 我意识到我获取当前片段的方式是flawe
@Override
public void onPageSelected(int page) {
this.currentPage = page;
tabsAdapter.getItem(page);
}
寻呼机中的 getItem(int position)
实际上负责实现片段的实例化,因此它会创建一个新的未附加片段(因此getActivity()
返回null)。我想我会用一种方法来保存片段的地图(<Position, Fragment>
),当在pagerAdapter中调用destoryItem时,我将从地图中删除片段。
答案 0 :(得分:1)
这个怎么样:
http://developer.android.com/reference/android/support/v4/view/ViewPager.OnPageChangeListener.html
onPageSelected(int)
方法听起来像你想要的那样。
答案 1 :(得分:1)
你是对的,最好的选择是这里的第二个解决方案: http://tamsler.blogspot.nl/2011/11/android-viewpager-and-fragments-part-ii.html
所以你的想法是正确的。