0
アクティビティ内にFragmentPagerAdapterのサポート付きで4つのタブ(フラグメント)が4つ付いたtabLayoutがあります。タブレイアウトのナビゲーションビュー、クリック時のナビゲーションビュー項目によるタブ(フラグメント)に移動
添付のナビゲーションビューを使用してタブにナビゲートしたいと考えています。ナビゲーションビューの項目をクリックするとタブを移動する方法。
次に、現在の4つのタブ(タブレイアウトに添付されている)を新しいフラグメントで削除する方法。フラグメントを追加する
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new OfferFragment(), "OFFERS");
adapter.addFragment(new BookedHistoryFragment(), "Booked History");
adapter.addFragment(new ReviewFragment(), "Reviews");
adapter.addFragment(new AvailableRoomFragment(), "Available");
viewPager.setAdapter(adapter);
}
サブclassAdapter:フラグメントを添付する
。
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 addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
ナビゲーションビューのアクション:
mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
mDrawerLayout.closeDrawers();
if (menuItem.getItemId() == R.id.nav_item_offers) {
int tabCount= tabLayout.getTabCount();
// I want to move to other tab.
Toast.makeText(getApplicationContext(),"First",Toast.LENGTH_SHORT).show();
// Intent intent = new Intent(getApplicationContext(), Booking.class);
// startActivity(intent);
}
else if (menuItem.getItemId() == R.id.nav_item_avail_room) {
// Then I want to remove Four tabs and call a new fragment.
Toast.makeText(getApplicationContext(),"Second",Toast.LENGTH_SHORT).show();
}
return false;
}
});