Android:如何在FragmentPagerAdapter中将标签设置为碎片?
这是一个内部类,它包含片段并在滑动时更改片段视图。此类在Android:如何在FragmentPagerAdapter中将标签设置为碎片?,android,android-fragments,Android,Android Fragments,这是一个内部类,它包含片段并在滑动时更改片段视图。此类在活动中定义 private class ViewPagerAdapter extends FragmentPagerAdapter { private int count; ViewPagerAdapter(FragmentManager fm, int count) { super(fm); this.count = count; } @Override publ
活动中定义
private class ViewPagerAdapter extends FragmentPagerAdapter {
private int count;
ViewPagerAdapter(FragmentManager fm, int count) {
super(fm);
this.count = count;
}
@Override
public Fragment getItem(int position) {
switch(position) {
case 0:
return new FriendsListFragment();
case 1:
Bundle bundle = new Bundle();
bundle.putString(Keys.TAG, ChatListFragment.class.getSimpleName());
ChatListFragment chatListFragment = new ChatListFragment();
chatListFragment.setArguments(bundle);
return chatListFragment;
case 2:
return new MoreFragment();
default:
return null;
}
}
@Override
public int getCount() {
return count;
}
}
在这里,我想添加一个代码,为每个片段设置标记,这样我就可以识别我所处的片段
我搜索了很多,没有找到这个问题的正确答案,所以请帮助。您可以覆盖FragmentPagerAdapter的设置PrimaryItem
方法
private class ViewPagerAdapter extends FragmentPagerAdapter {
protected int currentPosition = -1;
protected Fragment currentFragment;
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
// ....
}
@Override
public void setPrimaryItem(ViewGroup container, int position, Object object) {
super.setPrimaryItem(container, position, object);
this.currentPosition = position;
if (object instanceof Fragment) {
this.currentFragment = (Fragment) object;
}
}
public int getCurrentPosition() {
return currentPosition;
}
public Fragment getCurrentFragment() {
return currentFragment;
}
}
只需使用getCurrentPosition或getCurrentFragment方法来获取有关当前片段的信息。您可以覆盖FragmentPagerAdapter的setPrimaryItem
方法
private class ViewPagerAdapter extends FragmentPagerAdapter {
protected int currentPosition = -1;
protected Fragment currentFragment;
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
// ....
}
@Override
public void setPrimaryItem(ViewGroup container, int position, Object object) {
super.setPrimaryItem(container, position, object);
this.currentPosition = position;
if (object instanceof Fragment) {
this.currentFragment = (Fragment) object;
}
}
public int getCurrentPosition() {
return currentPosition;
}
public Fragment getCurrentFragment() {
return currentFragment;
}
}
只需使用getCurrentPosition或getCurrentFragment方法获取有关当前片段的信息。您还可以使用viewpager pagechange listener检测您所在的片段您还可以使用viewpager pagechange listener检测您所在的片段