android获取当前fragment,Android中ViewPager获取当前显示的Fragment

本文介绍了在Android中,当使用ViewPager显示多个Fragment时如何获取当前显示的Fragment。方法一是通过`getSupportFragmentManager().findFragmentByTag()`,利用FragmentPagerAdapter保存Fragment状态的特性,组合固定部分和ViewPager的ID及当前项位置来获取。方法二是重写适配器的`setPrimaryItem()`方法,存储每次滑动后显示的Fragment。需要注意,`setPrimaryItem()`在滑动监听执行完后调用,不适合在滑动监听中直接获取当前Fragment。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

在项目中,有时会用到在ViewPager中显示同样类型的Fragment,同时这样的Fragment的个数是动态的,但是PagerAdapter没有给我们提供getCurrentFragment类似的方法。下面就给大家介绍下Android中ViewPager获取当前显示的Fragment的方法,一起看看吧。

一、使用 getSupportFragmentManager().findFragmentByTag()方法

Viewpager + FragmentPagerAdapter 情况下 才好使; FragmentPagerAdapter 有一个特点 凡是加载过的Fragment 都会被保留,既然Fragment不会被销毁,那我们就可以使用findFragmentByTag()方法找到它;但问题是动态创建的话 tag的设置;我们知道动态加载时是可以设置tag的,但是动态创建就没法设置了;如果viewpager使用的是适配器是 FragmentPagerAdapter 的话 ,Fragment就会被设置上tag 根据这个tag 我们就可以获取到当前显示的fragment了;

下面看看这个过程

新创建时 tag ==null

@Override

public Fragment getItem(int position) {

PageTab pageTab = tabs.get(position);

TabFragment tab = new TabFragment();

Log.e(TAG,"====getItem===新创建时的tag:=="+tab.getTag());

tab.getAr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值