0
我的應用使用了具有2個部分的導航抽屜。導航抽屜帶碎片的揹包
第1節:字符列表,收藏夾列表
部分2:所有字符
字符列表具有相同的字符的選擇如在導航抽屜部分2的列表。從第1部分的「字符列表」或「收藏夾列表」中選擇一個字符,或從抽屜中的列表中選擇一個字符,將打開字符頁面。
當我在角色頁面上時,我希望後退按鈕將用戶帶回到「角色列表」或「收藏夾列表」(以上次訪問者爲準),但不會返回到前一個角色頁面(如果從導航抽屜)。
我抽屜裏的項偵聽:
public void getDrawerItemClickListener() {
mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
public boolean onNavigationItemSelected(MenuItem menuItem) {
mDrawerLayout.closeDrawers();
int selection = menuItem.getItemId();
String name = menuItem.getTitle().toString();
if(selection == R.id.nav_home) {
Fragment myFragment = new HomeFragment();
replaceFragment(myFragment);
}
if(selection == R.id.nav_fav) {
Fragment myFragment = new FavFragment();
replaceFragment(myFragment);
}
for(int i = 0; i < characters.size(); i++) {
if(characters.get(i).getName().equals(name))
{
Fragment myFragment = new TabFragment();
myFragment.setArguments(createCharacterBundle(characters.get(i)));
replaceFragment(myFragment);
break;
}
}
return false;
}
});
}
我replaceFragment方法:
public void replaceFragment(Fragment myFragment) {
FragmentTransaction transaction = mFragmentManager.beginTransaction();
transaction.replace(R.id.containerView, myFragment);
transaction.commit();
}
而且我onBackPressed方法:
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}