7

リスト ナビゲーション モードで Android アクション バーを実装しようとしています。リストからアイテムが選択されるとフラグメントが正常に変更されますが、フラグメントが重なり、2 番目のアイテムが画面に表示されたままの状態で前のコンテンツが表示されます。選択されました。アクティビティの OnCreate と OnNavigationItemSelected のコードは次のとおりです。

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    mFirstFragment = new FirstFragment();
    mSecondFragment = new SecondFragment();

    SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(
            this, 
            R.array.action_list, 
            android.R.layout.simple_spinner_dropdown_item);

    mActionBar = getActionBar();
    mActionBar.setDisplayShowTitleEnabled(false);
    mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
    mActionBar.setListNavigationCallbacks(mSpinnerAdapter, this);

    if(savedInstanceState != null) {
        mActionBar.setSelectedNavigationItem(
                savedInstanceState.getInt("currFragment"));
    }
}

public boolean onNavigationItemSelected(int position, long itemId) {
    FragmentTransaction mFragmentTransaction = 
            getFragmentManager().beginTransaction();

    switch(position) {
        case FIRST_FRAGMENT:
            mFragmentTransaction.replace(
                    android.R.id.content, 
                    mFirstFragment);
            break;
        case SECOND_FRAGMENT:
            mFragmentTransaction.replace(
                    android.R.id.content, 
                    mSecondFragment);
            break;
    }
    mFragmentTransaction.commit();

    return true;
}

前もって感謝します!

4

1 に答える 1

1

私はこれと同じ問題を抱えていました。Actionbar タブの FragmentTransaction .attach および .detach で受け入れられた回答は、私にとってはうまくいきました。また、方向の変更後にスクロールビューが重複したビューを作成したAndroidアクションバータブから良いポインターを取得することもできます(ただし、私にとって重要な洞察は、リンクした最初の質問からのものでした)。

于 2012-05-10T22:36:28.110 に答える