0

新しいデザイン サポート ナビゲーション ドロワーでフラグメントを切り替えるにはどうすればよいですか? ナビゲーション ドロワーではなく、TabLayout を使用してフラグメントを切り替える方法について、Cheesesquare Github でサンプル コードを見つけました。それは同じですか?また、切り替え時にフラグメントを再作成したくはありませんが、フラグメントのインスタンスを保持し、フラグメントのコンテンツがユーザーが残した方法である TabLayout のようにします。

4

2 に答える 2

0

次のようなコードを記述します。

navigationView.setNavigationItemSelectedListener(
        new NavigationView.OnNavigationItemSelectedListener() {
    @Override
    public boolean onNavigationItemSelected(MenuItem menuItem) {
        menuItem.setChecked(true);
        mDrawerLayout.closeDrawers();
        switch (menuItem.getItemId()) {
            case R.id.your_menu_id: 
                getSupportFragmentManager().beginTransaction().replace(R.id.fragment, getFragment(), "SET_A_TAG").addToBackStack("SET_A_TAG").commit();
                break;
        }
        return true;
    }
});

private YourFragment getFragment() {
    YourFragment f = getSupportFragmentManager().findFragmentByTag("SET_A_TAG");
    if (f == null) {
        f = new YourFragment();
    }
    return f;
}
于 2015-06-13T09:11:56.623 に答える