Fragments
私は何年も Android を使用してきましたが、実際のプロジェクトで使用するのはこれが初めてです。だから私は少し混乱しています:-P
このアプリにはNavigationDrawer
4 つのメイン セクションがあります。に置き換えるコンテンツを持つActivity
aを持つメインを 1 つだけ使用しています。のオプションが選択されると、 をインスタンス化し、そのコンテンツに配置します。私はこのようなことをしています:Layout
View
Fragments
NavigationDrawer
Fragment
View
private class DrawerItemClickListener implements ListView.OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
selectItem(position);
}
}
public static int drawerSelectedOption = 0;
private void selectItem(int position) {
drawerSelectedOption = position;
Fragment fragment = null;
switch (position) {
case 0:
fragment = new StoresFragment();
break;
case 1:
//promos
case 2:
fragment = new TransactionsFragment();
break;
case 3:
break;
case 4:
fragment = new Settings();
break;
}
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit();
// update selected item and title, then close the drawer
mDrawerList.setItemChecked(position, true);
setTitle(mSectionTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
}
Fragments
各 main 内からさらにプッシュされますNavigationDrawer
Fragments
。したがって、メインの「画面」のそれぞれには、以下に示すように内部にいくつかのサブ画面があります。
Drawer __ Fragment 1.0 -- Fragment 1.1 -- Fragment 1.2
|__ Fragment 2.0 -- Fragment 2.1 -- Fragment 2.2
Fragments
次のように、以前のメニューからこれらの内部をプッシュしていFragment
ActionBar
ます。
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
OrderCreateFragment fragment = new OrderCreateFragment();
fragmentTransaction.add(R.id.content_frame, fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
私はいくつかの問題に直面しているため、このアプローチに関するアドバイスを探しています。
ActionBar
メニュー項目を適切に管理する方法さえ知りません。すべてFragment
に独自のメニューがあり、バーにスタックすることがあります (つまり、Android の戻るキーで戻るのではなく、をFragments
タップして切り替えた場合)。NavigationDrawer
StackBack
オプションの 1 つを選択するときに完全にポップする必要がありNavigationDrawer
ます。どういうわけかスタックに保持されているため、私のActionBar
乱雑なアイテムはこれに関連していると思われます。Fragments
StackBack
それで、これが適切なアプローチであるかどうか、および との問題に対処する方法について、誰か親切にアドバイスしてもらえますActionBar
か?
UPDATE : selectItem メソッドでスタック全体をクリアすると、2 つの主な問題が解決したようです。私はまだこのアプローチについての意見を聞くことに興味がありますが。