0
我有一個帶有4個選項卡(片段)的tabLayout,並且在活動內部支持FragmentPagerAdapter。帶有選項卡布局的導航視圖,通過點擊導航視圖項目轉到選項卡(片段)
我想使用附加的導航視圖導航到選項卡。當我點擊導航視圖中的項目時如何去標籤。
然後如何刪除當前的四個選項卡(這是與tablayout附加)與新的片段。
附加片段:
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;
}
});