片段生命週期

如你所知,你可以擁有一個活動,但其中嵌入了不同的片段。這就是片段生命週期對開發人員也很重要的原因。

在下圖中,你可以看到 Android 片段生命週期的樣子:

StackOverflow 文件

如官方 Android 文件中所述,你應該至少實現以下三種方法:

  • OnCreate - 系統在建立片段時呼叫它。在你的實現中,你應該在片段暫停或停止時初始化要保留的片段的基本元件,然後重新開始。

  • OnCreateView - 當片段第一次繪製其使用者介面時,系統會呼叫此方法。要為片段繪製 UI,必須從此方法返回檢視,該檢視是片段佈局的根。如果片段不提供 UI,則可以返回 null。

  • OnPause - 系統呼叫此方法作為使用者離開片段的第一個指示(儘管並不總是意味著片段被破壞)。這通常是你應該提交應該在當前使用者會話之外保留的任何更改的地方(因為使用者可能不會回來)。

以下是 Xamarin.Android 中的示例實現:

public class MainFragment : Fragment
{
    public override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);

        // Create your fragment here
        // You should initialize essential components of the fragment
        // that you want to retain when the fragment is paused or stopped, then resumed.
    }

    public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        // Use this to return your custom view for this Fragment
        // The system calls this when it's time for the fragment to draw its user interface for the first time.

        var mainView = inflater.Inflate(Resource.Layout.MainFragment, container, false);
        return mainView;
    }

    public override void OnPause()
    {
        // The system calls this method as the first indication that the user is leaving the fragment 

        base.OnPause();
    }
}

當然,如果要處理不同的狀態,可以在此處新增其他方法。