[英]Update ActionBar title after leaving fragment
啟動MainActivity時,ActionBar會顯示應用程序標題。 通過導航抽屜導航到片段后,標題將更改為與片段匹配...但是,一旦使用“后退”按鈕向后導航,標題將保持不變,並且仍具有片段的標題。 我希望將其更改回應用程序標題。
我試圖在MainActivity.java中使用onResume()方法,但是一旦您留下一個片段,它似乎就不會被調用。
@Override
public void onResume() {
super.onResume();
// Set title
getActionBar().setTitle("FuelR");
invalidateOptionsMenu();
}
有誰知道將標題改回app_name的最佳方法是什么?
謝謝
確實,銷毀一個Activity中的一個片段並不意味着該活動將調用onResume,首先您必須注意到Fragment處於Activity生命上下文中,並且Fragment不會改變其生命周期,只是它的一部分,您可以在片段中獲取對活動的引用,並將標題設置回先前的狀態,如下所示:
//In Fragment
@Override
public void onDestroyView() {
super.onDestroyView();
((Cast If Necessary)getActivity()).getActionBar().setTitle("Previous Title");
}
或更進一步的OOP方法是,創建一個聲明方法setTitlePreviousText的接口,然后在Activity類中實現該接口,然后從片段中執行以下操作:
//In Fragment
@Override
public void onDestroyView() {
super.onDestroyView();
Activity act = getActivity()
if(act instanceof SetPreviousTextInterface){
//setTitlePreviousText will be called giving you the chance to just change it back...
((SetPreviousTextInterface)act).setTitlePreviousText();
}
}
這將是接口文件:
public interface SetPreviousTextInterface{
public void setTitlePreviousText();
}
問候!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.