sco*_*eus 15 android back-button android-fragments back-stack
我在stackoverflow上读到的其他问题都没有能够解决我的问题.据我所知,我正在做的一切正确.
我有一个带片段的主/细节流.
创建主活动后,主片段将加载以下代码:
Fragment frag;
frag = new MainListFragment();//<-- **the master fragment**
FragmentManager fm = getFragmentManager();
FragmentTransaction transaction = fm.beginTransaction();
transaction.replace(R.id.fragment_container, frag);
Log.d("My Debug Bitches", "stack:" + fm.getBackStackEntryCount());
transaction.commit();
Run Code Online (Sandbox Code Playgroud)
主片段有一个ListView
; 单击列表项会显示详细信息片段,如下所示:
@Override
public void onListItemClick(ListView listView, View view, int position, long id) {
super.onListItemClick(listView, view, position, id);
FragmentManager fm = getFragmentManager();
FragmentTransaction transaction = fm.beginTransaction();
SubListFragment frag = new SubListFragment();//<-- **the detail fragment**
transaction.replace(R.id.fragment_container, frag);
transaction.addToBackStack(null);
transaction.commit();
fm.executePendingTransactions();
Log.d("My Debug Bitches", "stack:" + fm.getBackStackEntryCount());
}
Run Code Online (Sandbox Code Playgroud)
现在,根据LogCat,我从主片段导航到细节片段后,BackStackEntryCount
从0变为1:
那么为什么当我在详细信息片段中单击后退按钮时,应用程序关闭而不是返回到主片段呢??????????
Bob*_*ke4 57
您必须将popBackStack()
调用添加到onBackPressed()
活动的方法中.
例如:
@Override
public void onBackPressed() {
if (fragmentManager.getBackStackEntryCount() > 0) {
fragmentManager.popBackStack();
} else {
super.onBackPressed();
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12215 次 |
最近记录: |