0
私は2つの断片(同じクラス - PlayerFragment)を持っていると私はこの方法でViewPagerを設定すると、正しく表示されない:TabLayoutとViewPagerは二つの断片
private void setupViewPager(ViewPager viewPager) {
FragmentManager fManager = getSupportFragmentManager();
ViewPagerAdapter adapter = new ViewPagerAdapter(fManager);
Bundle args1 = new Bundle();
args1.putInt("Id",1);
PlayerFragment pf1 = new PlayerFragment();
pf1.setArguments(args1);
adapter.addFrag(pf1, "Players 1");
Bundle args2 = new Bundle();
args2.putInt("Id",2);
PlayerFragment pf2 = new PlayerFragment();
pf2.setArguments(args2);
adapter.addFrag(pf2, "Players 2");
viewPager.setAdapter(adapter);
}
私は2つのタブを持っていますが、唯一の最初のタブは私が内容を示し、もう一方のタブは空です。 最初のタブは私に2番目のタブの内容を示しています。
final ViewPager viewPager = (ViewPager) findViewById(R.id.vpTeam);
setupViewPager(viewPager);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabsTeam);
tabLayout.setupWithViewPager(viewPager);
ありがとう:私はこのコードを持っているフラグメントを使用する活動で
static class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFrag(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
!
編集:これはPlayerFragment
パブリッククラスPlayerFragmentが
私は静的変数を持っていませんし、newInstanceが明確に定義されているかわかりません。ありがとう! –
PlayerFragmentのコードを追加します。 –
これでフラグメントを初期化する必要があります:pf1 = PlayerFragment.newInstance(5); adapter.addFrag(pf1、 "Players 1"); –