添加片段回栈(获得背部按下空白屏幕)

问题描述:

我有两个片段,第一个被称为夏季作业片段,其中包含项目列表,第二个被称为夏季作业详细信息其中包含每个细节项目。我试图设置回跟踪,以便当我从夏季作业细节片段按下后退按钮时,我会回到夏季作业片段。添加片段回栈(获得背部按下空白屏幕)

这里是我从水井坊到SJDF初期转移代码:

public void onItemClick(
        AdapterView<?>parent,View view, int position, long id) { 

       SummerJobDetailsFragment.mMyAppsBundle. 
         putInt("value", position); 
       SummerJobDetailsFragment fragment = 
         new SummerJobDetailsFragment(); 
       FragmentManager fragmentManager = 
         getFragmentManager(); 
       list.setVisibility(parent.INVISIBLE); 
       fragmentManager.beginTransaction().replace(R.id.displayjobs_detailed, fragment). 
         addToBackStack("tag").commit(); 

      } 

,这里是我如何修改OnBackPressed()主:

public void onBackPressed() { 
     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     if (getFragmentManager().getBackStackEntryCount() > 0) { 
      getFragmentManager().popBackStack(); 

     } else { 
      super.onBackPressed(); 

     } 
    } 

但是,当我按下从SJDF返回键,我得到了一个空白页面:

list view details After back is pressed

+0

有选项POST代码! –

+0

是的我得到一个关于我的代码的错误原来是因为我有很多图像。我将重新发布我的帖子 – dadadodo

+0

@ShreeKrishna我编辑我的文章 – dadadodo

在这种情况,填充ListView在onResume()方法,像

@Override 
public void onResume() { 
     super.onResume(); 
     CustomAdapter customAdapter = new CustomAdapter(this, R.layout.itemlistrow, List<yourItem>);  
     yourListView.setAdapter(customAdapter); 
    } 
+0

然后我应该调用onItemckicked()中的方法。如果是,我应该删除将第一个片段设置为不可见的行? – dadadodo

+0

@dadadodo如果你确定他们不是发生这种事情的原因,可能不需要。如果您在onResume中设置适配器时感到不适,那么您可以创建一个方法来设置适配器并在onResume中调用该适配器。 –

只是在你的活动中使用此代码:

@Override 
public void onBackPressed() { 

    getFragmentManager().executePendingTransactions(); 
    int count = getFragmentManager().getBackStackEntryCount(); 

    if (count <= 1) { 
     finish();   
    } else { 
     getFragmentManager().popBackStack(); 
    } 

} 

也许你需要使用getSupportFragmentManager()代替。

fragmentTransaction.addToBackStack()< --dont这包括你的第一个片段.-->

if(getSupportFragmentManager().getBackStackEntryCount() !=1){ 
       fragmentTransaction.addToBackStack(null); 
      }