簡體   English   中英

離開片段后更新ActionBar標題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM