
Fragment fragement = getSupportFragmentManager() findFragmentByTag("android:switcher:"+RidViewPage+":" + selectTab);
这个Tag可以从FragmentPagerAdapter的源码中找到,如下:
@Override
public Object instantiateItem(ViewGroup container, int position) {
if (mCurTransaction == null) {
mCurTransaction = mFragmentManagerbeginTransaction();
}
// Do we already have this fragment
String name = makeFragmentName(containergetId(), position);
Fragment fragment = mFragmentManagerfindFragmentByTag(name);
if (fragment != null) {
if (DEBUG) Logv(TAG, "Attaching item #" + position + ": f=" + fragment);
mCurTransactionattach(fragment);
} else {
fragment = getItem(position);
if (DEBUG) Logv(TAG, "Adding item #" + position + ": f=" + fragment);
mCurTransactionadd(containergetId(), fragment,
makeFragmentName(containergetId(), position));
}
if (fragment != mCurrentPrimaryItem) {
fragmentsetMenuVisibility(false);
fragmentsetUserVisibleHint(false);
}
return fragment;
使用FragmentPagerAdapter时,难免要在MainActivity 和 当前显示的Fragment间传递数据。但是FragmentPagerAdapter并没有给我们提供类似getCurrentFragment一类的API。
通过FragmentPagerAdapter源码,发现每次Fragment切换都会调用到FragmentPagerAdaptersetPrimaryItem 方法。这个方法里把一个Fragment设置为mCurrentPrimaryItem。 很明显,mCurrentPrimaryItem就是我们想得到的当前Fragment那么我们只需要重载这个方法,把传入的Fragment记录下来即可。
XX
我们可以在Adapter里定义一个currentFragment成员
为viewPager设置setOnPageChangeListener监听器。如viewsetOnPageChangeListener(new GuidePageChangeListener());GuidPageChangeListener 实现接口OnPangeChangeListener。
public class GuidePageChangeListener implements OnPageChangeListener {
@Override
public void onPageScrollStateChanged(int arg0) {
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageSelected(int arg0) {// arg0当前选中页页脚编号
if (arg0 == 0) {// 第一页
} else if (arg0 == 1) {// 第二页
} else if (arg0 == 2) {//第三页
}
}
}
先定位到相应的页卡,比如你有3个页卡分别是View1,View2,View3。
那么你要走在View1中添加就这样写
RelativeLayout insertLayout = (RelativeLayout)View1findViewById(Ridscreen)
View2中就是
RelativeLayout insertLayout = (RelativeLayout)View2findViewById(Ridscreen)
以此类推
以上就是关于ViewPager中怎么获取Fragment全部的内容,包括:ViewPager中怎么获取Fragment、如何获取ViewPager当前的Fragment、怎么获得viewPager当前的页码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)