7

我正在尝试在列表导航模式下实现 Android 操作栏,当从列表中选择一个项目时,它成功更改片段,但片段重叠,当第二个是时,我可以在屏幕上看到前一个的内容选择。这是 Activity 的 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

我有同样的问题。操作栏选项卡的FragmentTransaction .attach 和 .detach中接受的答案对我有用。您还可以从Android 操作栏选项卡中获得很好的指示,滚动视图在方向更改后制作了重复视图(尽管对我有用的关键见解来自我链接到的第一个问题)。

于 2012-05-10T22:36:28.110 回答