![](/img/trans.png)
[英]Back button goes to the parent activity instead going to the phone home screen
[英]Back button in fragment goes back to Home screen
我是Android和片段的新手,所以我想我錯過了一些重要的東西。 我有一個主要活動和2個片段,第二個片段替換了第一個片段,該片段替換了活動。 我提交了一個替換事務,但是由於某些原因,每次我按下后退按鈕時(也從第二個片段開始),我都不會忘記調用addToBackStack(null)
,該應用程序返回桌面屏幕,並且該應用程序可以通過最近的應用程序屏幕使用,始終顯示主要活動。
為什么會這樣呢?
MainActivity.java
...
else if (id == R.id.action_settings) {
FragmentTransaction fragmentTransaction = getFragmentManager()
.beginTransaction();
fragmentTransaction.setCustomAnimations(R.anim.enter, R.anim.exit);
fragmentTransaction.replace(R.id.MainLayout,
new SettingsFragment());
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
return true;
}
SettingsFragment.java
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState){
...
@Override
public void onClick(View v) {
FragmentTransaction fragmentTransaction = getFragmentManager()
.beginTransaction();
fragmentTransaction.replace(R.id.MainLayout,
new SelectBackgroundFragment());
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
});
您需要在活動中覆蓋onBackPressed:
@Override
public void onBackPressed() {
if (getFragmentManager().getBackStackEntryCount() > 0) {
getFragmentManager().popBackStackImmediate();
} else {
super.onBackPressed();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.