具有相同片段类的Android FragmentPagerAdapter
我正在使用tabs、tablayout、fragments和FragmentPagerAdapter制作一个记分应用程序。该应用运行良好,但我不知道如何访问这些片段。在片段中完成一些工作后,我想访问片段以更新其分数。如何访问当前片段 编辑-我的主要问题是找到位置。如果单击选项卡,我可以使用tabLayout.getSelectedTabPosition()获得正确的位置,但如果在选项卡之间滑动,viewpager的处理方式会有所不同,我不知道如何从中找到位置具有相同片段类的Android FragmentPagerAdapter,android,android-fragments,fragmentpageradapter,android-tablayout,Android,Android Fragments,Fragmentpageradapter,Android Tablayout,我正在使用tabs、tablayout、fragments和FragmentPagerAdapter制作一个记分应用程序。该应用运行良好,但我不知道如何访问这些片段。在片段中完成一些工作后,我想访问片段以更新其分数。如何访问当前片段 编辑-我的主要问题是找到位置。如果单击选项卡,我可以使用tabLayout.getSelectedTabPosition()获得正确的位置,但如果在选项卡之间滑动,viewpager的处理方式会有所不同,我不知道如何从中找到位置 public class Pager
public class PagerAdapter extends FragmentPagerAdapter {
private int numTabs;
public PagerAdapter(FragmentManager fm, int tabs) {
super(fm);
numTabs = tabs;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return makeScoreFrag(1, "Team 1");
case 1:
return makeScoreFrag(2, "Team 2");
case 2:
return makeScoreFrag(3, "Team 3");
case 3:
return makeScoreFrag(4, "Team 4");
default:
return null;
}
}
@Override
public int getCount() {
return numTabs;
}
private ScoreFragment makeScoreFrag(int num, String title){
Bundle bundle = new Bundle();
bundle.putInt("score", 0);
bundle.putInt("number", num);
bundle.putString("title", title);
ScoreFragment frag = new ScoreFragment();
frag.setArguments(bundle);
return frag;
}
}
您可以在FragmentPagerAdapter中重写InstanceItem方法
ScoreFragment[] fragments = new ScoreFragment[numTabs];
@Override
public Object instantiateItem(ViewGroup container, final int position) {
fragments[position] = (ScoreFragment) super.instantiateItem(container, position);
return fragments[position];
}
那么当前片段是:
ScoreFragment curFragment = fragments[curTab];
您可以在FragmentPagerAdapter中重写InstanceItem方法
ScoreFragment[] fragments = new ScoreFragment[numTabs];
@Override
public Object instantiateItem(ViewGroup container, final int position) {
fragments[position] = (ScoreFragment) super.instantiateItem(container, position);
return fragments[position];
}
那么当前片段是:
ScoreFragment curFragment = fragments[curTab];
您可以探索为ViewPager添加OnPageChangeListener以跟踪所选页面是否能够满足您的需要。您可以探索为ViewPager添加OnPageChangeListener以跟踪所选页面是否能够满足您的需要。