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

 我来答
司马刀剑
高粉答主

2017-11-06 · 每个回答都超有意思的
知道顶级答主
回答量:4.6万
采纳率:93%
帮助的人:7330万
展开全部
想要操控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。。。;
}
}
123456789101112131415161718192021222324252627

这样我们就可以通过外部调用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);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式