添加片段回栈(获得背部按下空白屏幕)
我有两个片段,第一个被称为夏季作业片段,其中包含项目列表,第二个被称为夏季作业详细信息其中包含每个细节项目。我试图设置回跟踪,以便当我从夏季作业细节片段按下后退按钮时,我会回到夏季作业片段。添加片段回栈(获得背部按下空白屏幕)
这里是我从水井坊到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返回键,我得到了一个空白页面:
在这种情况,填充ListView在onResume()
方法,像
@Override
public void onResume() {
super.onResume();
CustomAdapter customAdapter = new CustomAdapter(this, R.layout.itemlistrow, List<yourItem>);
yourListView.setAdapter(customAdapter);
}
然后我应该调用onItemckicked()中的方法。如果是,我应该删除将第一个片段设置为不可见的行? – dadadodo
@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);
}
有选项POST代码! –
是的我得到一个关于我的代码的错误原来是因为我有很多图像。我将重新发布我的帖子 – dadadodo
@ShreeKrishna我编辑我的文章 – dadadodo