您的位置:首页 > 其它

怎么在viewpager中获取子fragment里面的控件

2016-08-31 21:19 543 查看
有时候我们想要操控viewpager中获取焦点的fragment的控件,但是并没有getCurrentFragment 等类似的方法,但是提供了setPrimaryItem方法,但是这个实在adapter里面的,所有我们像个办法让他把当前的fragment从adapter中传出来,那么就要重写fragmentpageradapter

代码如下:

public class MyFragmentAdapter extends FragmentPagerAdapter {

public Fragment currentFragment;

public MyFragmentAdapter(FragmentManager fm, List<Fragment> list) {
super(fm);
this.list=list;
}

@Override
public void setPrimaryItem(ViewGroup container, int position, Object object) {
this.currentFragment= (Fragment) object;
super.setPrimaryItem(container, position, object);
}

@Override
public Fragment getItem(int position) {
return 。。。;
}

@Override
public int getCount() {
return。。。;
}
}


这样我们就可以通过外部调用currentFragment来获取当前fragment,

如:

((MyFragmentAdapter)viewPager.getAdapter()).currentFragment

然后强转成你需要的fragment就可以啦。

调用方法的时候只要,fragment.getView().finViewById();

比如:

MyFragment mf= (MyFragment ) ((MyFragmentAdapter)viewPager.getAdapter()).currentFragment;

//找到控件

ScrollView scrollview= (ScrollView) mf.getView().findViewById(R.id.tuijian_scrollview);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: