片段生命周期

如你所知,你可以拥有一个活动,但其中嵌入了不同的片段。这就是片段生命周期对开发人员也很重要的原因。

在下图中,你可以看到 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();
    }
}

当然,如果要处理不同的状态,可以在此处添加其他方法。