Android 将片段更改为上一个片段

Android 将片段更改为上一个片段,android,android-fragments,fragment,Android,Android Fragments,Fragment,嘿,我有一个导航抽屉,每个元素打开一个片段。现在,如果我按下后退按钮,我想打开最后一个片段。我使用这个.addBackStack(null)方法,但是当我按下后退按钮时,我没有内容,当我再次按下后退按钮时,我得到了我需要的片段。我怎样才能摆脱这些黑色内容? 我像这样改变我的片段: @Override public void onNavigationDrawerItemSelected(final int position) { // update the main content by

嘿,我有一个导航抽屉,每个元素打开一个片段。现在,如果我按下后退按钮,我想打开最后一个片段。我使用这个.addBackStack(null)方法,但是当我按下后退按钮时,我没有内容,当我再次按下后退按钮时,我得到了我需要的片段。我怎样才能摆脱这些黑色内容? 我像这样改变我的片段:

 @Override
public void onNavigationDrawerItemSelected(final int position) {
    // update the main content by replacing fragments
  final  FragmentManager fragmentManager = getSupportFragmentManager();
    fragmentManager.beginTransaction()
            .replace(R.id.container, PlaceholderFragment.newInstance(position + 1))
            .addToBackStack(null)
            .commit();
    if(position==0)
    {
        final Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                fragmentManager.beginTransaction()
                        .replace(R.id.container, KedvencekFragment.newInstance(position + 1))
                        .addToBackStack(null)
                        .commit();
            }
        }, 250);

    }

我建议使用前面的片段位置保存堆栈,如何将片段位置保存到堆栈中?stack stack=new stack();堆栈。推(位置);int position=stack.pop();您可以通过注释postDelayed()部分进行检查。黑屏显示可能是因为延迟后的块执行。