0
私はViewPagerを作成しました。一つのタブにはQRコードリーダーがあり、一つのタブにはスキャンされたqrコードの結果が表示されます。デフォルトではqrコード画面の結果がポップアップしますので、iqタブのスキャンタブではその断片のレイアウトしか表示されませんが、スキャナ画面は表示されません。 デフォルトのタブをスキャナにすると、スキャナの画面しか表示されません。以下 ビューページャの私のコード..タブをクリックしたときにポケットベルのフラグメントが表示されませんか?
tabLayout = (TabLayout) findViewById(R.id.bottomNavigation);
viewPager =(ViewPager)findViewById(R.id.viewPagerHome);
tabLayout.setupWithViewPager(viewPager);
viewPager.setOffscreenPageLimit(2);
view1= (View)findViewById(R.id.view1);
view2= (View)findViewById(R.id.view2);
view3= (View)findViewById(R.id.view3);
//Adding the tabs using addTab() method
tabLayout.addTab(tabLayout.newTab().setText("Scan"));
tabLayout.addTab(tabLayout.newTab().setText("Candidate"));
tabLayout.addTab(tabLayout.newTab().setText("Setting"));
viewPager = (ViewPager) findViewById(R.id.viewPagerHome);
//Creating our pager adapter
adapter = new Pager(getSupportFragmentManager(), tabLayout.getTabCount());
//Adding adapter to pager
viewPager.setAdapter(adapter);
//Adding onTabSelectedListener to swipe views
tabLayout.setOnTabSelectedListener(this);
//setUptabIcon();
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
switch(position){
case 0:
/* ViewPager viewPager = (ViewPager)findViewById(R.id.viewPagerHome);
viewPager.setCurrentItem(0);*/
view1.setBackgroundResource(R.color.red );
view2.setBackgroundResource(R.color.white );
view3.setBackgroundResource(R.color.white);
break;
case 1:
view1.setBackgroundResource(R.color.white);
view2.setBackgroundResource(R.color.red);
view3.setBackgroundResource(R.color.white);
break;
case 2:
view1.setBackgroundResource(R.color.white );
view2.setBackgroundResource(R.color.white);
view3.setBackgroundResource(R.color.red );
break;
default:
view1.setBackgroundResource(R.color.white );
view2.setBackgroundResource(R.color.red);
view3.setBackgroundResource(R.color.white );
break;
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
if(tab.getPosition() == 0){
Fragment childF = new CandidateScanChildFragment();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.child_scanfragment_container, childF).commit();
}
}
ViewPagerAdpater.class
public class Pager extends FragmentStatePagerAdapter {
int tabCount;
FragmentManager mFragmentManager;
private Fragment mFragmentAtPos0;
//FirstPageListener listener = new FirstPageListener();
public Pager(FragmentManager fm, int tabCount) {
super(fm);
this.tabCount = tabCount;
}
public Pager(FragmentManager fragmentManager) {
super(fragmentManager);
mFragmentManager = fragmentManager;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
ScanFragment scanTabFragment = new ScanFragment();
return scanTabFragment;
case 1:
CandidateFragment candidateTabFragment = new CandidateFragment();
return candidateTabFragment;
case 2:
SettingFragment settingtabFragment = new SettingFragment();
return settingtabFragment;
default:
return null;
}
}
@Override
public int getCount() {
return tabCount;
}
@Override 公共INT getItemPosition(Objectオブジェクト) {
return POSITION_NONE;
}
}であります