如何在activity中获取viewpager中fragment里的组件

如何在activity中获取viewpager中fragment里的组件,第1张

1Fragment是android30引入的新控件,果应用使用在30以下、16及以上的版本,需要引入v4包。

2Fragment支持在不同的Activity中使用并且可以处理自己的输入事件以及生命周期方法等。

3Fr期方法依赖于Activity的生命周期,例如一个Activity的onPause()的生命周期方法被调用的时候这个Activity中的所有的Fragment的onPause()方法也将被调用。

4FragmentManager提供了对Activity运行时的Fragment的添加、删除、替换的 *** 作。在Activity运行期间可以添加Fragment而不是在XML布局文件中进行定义。如果打算在Activity中改变Fragment的生命过程。如果要执行添加、删除、修改的 *** 作,必须通过FragmentManager的对象获得一个FragmentTransaction对象,通过它的API来执行这些 *** 作。

5两个单独的Fragment之间是不应该进行通信的。应该使用他们所存在的Activity作为沟通的纽带。

想要 *** 控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);

thislist=list;

}

@Override

public void setPrimaryItem(ViewGroup container, int position, Object object) {

thiscurrentFragment= (Fragment) object;

supersetPrimaryItem(container, position, object);

}

@Override

public Fragment getItem(int position) {

return 。。。;

}

@Override

public int getCount() {

return。。。;

}

}

123456789101112131415161718192021222324252627

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

如:

((MyFragmentAdapter)viewPagergetAdapter())currentFragment

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

调用方法的时候只要,fragmentgetView()finViewById();

比如:

MyFragment mf= (MyFragment ) ((MyFragmentAdapter)viewPagergetAdapter())currentFragment;

//找到控件

ScrollView scrollview= (ScrollView) mfgetView()findViewById(Ridtuijian_scrollview);

首先在Activity中实例化Fragment

ExampleFragment exFragment = (Fragment)getFragmentManager()findFragmentById(fragmentID);

然后获取Fragment中的控件

TextView tv =(TextView) exFragmentgetView()findViewById(tvID);

```

这样就OK了

:ViewPager中如何获取Fragment 在做项目时,遇到Fragment与Fragment、Fragment与Activity需要相互通信、传递数据以及进行互 *** 作的问题,查阅了官方文档,也实现了官方的例子,但实际项目是ViewPager+Fragment,按官方的例 子

svgselectAll("place-label")

attr("x", function(d) { return dgeometrycoordinates[0] > -1 6 : -6; })

style("text-anchor", function(d) { return dgeometrycoordinates[0] > -1 "start" : "end"; })

以上就是关于如何在activity中获取viewpager中fragment里的组件全部的内容,包括:如何在activity中获取viewpager中fragment里的组件、怎么在viewpager中获取子fragment里面的控件、android activity中怎么调用fragment中的控件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9326622.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存