[英]How to refresh a previous fragment on back press without disturbing the back stack
我正在使用viewpager和附加的fragmentA進行制表活動,當我想移動fragmentB時,用當前fragmentA替換fragmentB。我需要在FragmentB中為onbackpress找到解決方案以刷新fragmentA,而無需更改Backstack,因為我在一個選項卡中使用了將近十個片段。
片段生命周期中是否有任何方法
當片段B超過片段A時,片段A為onPause()。 反壓后,片段A為onResume()。 因此,您可以創建一個布爾值來觀察此更改。
在片段A中
private boolean isBackFromB;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
isBackFromB=false;
}
@Override
public void onPause() {
super.onPause();
isBackFromB = true;
}
@Override
public void onResume() {
super.onResume();
updateUI();
if (isBackFromB) //Do something
}
重寫onBackPressed()
方法在Activity
,加入所有fragment
在堆棧中。
@Override
public void onBackPressed() {
FragmentManager manager =getFragmentManager();
int count = manager.getBackStackEntryCount();
if (count == 0) {
super.onBackPressed();
} else {
manager.popBackStack();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.