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