要在FragmentStateAda
pt
er中获取Fragment,需要先重写getItemId()方法和getItemCount()方法。接下来,可以使用getItem()方法来获取特定位置的Fragment。
以下是示例代码:
public cl
as
s ExampleAda
pt
er extends FragmentStateAda
pt
er {
private
List<Fragment> fragmentList;
public ExampleAdapter(@NonNull FragmentManager fragmentManager, @NonNull Lifecycle lifecycle, List<Fragment> fragmentList) {
super(fragmentManager, lifecycle);
this.fragmentList = fragmentList;
@NonNull
@Override
public Fragment createFragment(int position) {
return fragmentList.get(position);
@Override
public int getItemCount() {
return fragmentList.size();
@Override
public long getItemId(int position) {
// 重写getItemId()方法以获取唯一的Fragment ID
return fragmentList.get(position).hashCode();
public Fragment getFragment(int position) {
// 使用getItem()方法获取特定位置的Fragment
return fragmentManager.findFragmentByItemId(getItemId(position);
在上面的代码中,getItemId()方法被重写用来获取唯一的Fragment ID。因此,getItem()方法可以通过getItemId()方法和FragmentManager的findFragmentByItemId()方法来获取特定位置的Fragment。最后,可以使用getFragment()方法来获得所需位置的Fragment。