package me.jeeson.android.mvp.arch.base.delegate;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import me.jeeson.android.mvp.arch.di.component.AppComponent;

/**
 * Created by Jeeson 29/04/2017 14:31
 * Contact with smuwjs@163.com
 */

public interface IFragment {
    /**
     * 提供AppComponent(提供所有的单例对象)给实现类，进行Component依赖
     * @param appComponent
     */
    void setupFragmentComponent(AppComponent appComponent);

    boolean useEventBus();

    View initView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState);

    void initData(Bundle savedInstanceState);

    /**
     * 此方法是让外部调用使fragment做一些操作的,比如说外部的activity想让fragment对象执行一些方法,
     * 建议在有多个需要让外界调用的方法时,统一传Message,通过what字段,来区分不同的方法,在setData
     * 方法中就可以switch做不同的操作,这样就可以用统一的入口方法做不同的事
     *
     * 使用此方法时请注意调用时fragment的生命周期,如果调用此setData方法时onActivityCreated
     * 还没执行,setData里调用presenter的方法时,是会报空的,因为dagger注入是在onActivityCreated
     * 方法中执行的,如果要做一些初始化操作,可以不必让外部调setData,在initData中初始化就可以了
     *
     * @param data
     */
    void setData(Object data);
}

@@ -895,39 +895,34 @@
 ata%E6%96%B9%E6%B3%95%E6%97%B6on
-Activity
 Create
-d
+%E8%BF%98%E6%B2%A1%E6%89%A7%E8%A1%8C
 %0A     * 
 %E8%BF%98%E6%B2%A1%E6%89%A7%E8%A1%8C,set
@@ -917,21 +917,16 @@
   * 
-%E8%BF%98%E6%B2%A1%E6%89%A7%E8%A1%8C,
 setData%E9%87%8C
 %E8%B0%83%E7%94%A8pr
@@ -921,18 +921,20 @@
 setData%E9%87%8C
+%E5%8D%B4
 %E8%B0%83%E7%94%A8
+%E4%BA%86
 presente
@@ -963,23 +963,37 @@
 %E6%98%AF%E5%9C%A8on
-ActivityCreated
+Created%E6%96%B9%E6%B3%95%E4%B8%AD%E6%89%A7%E8%A1%8C%E7%9A%84,%E7%84%B6%E5%90%8E%E6%89%8D%E5%88%9B%E5%BB%BA%E7%9A%84presenter
 %0A   

Update on 2017.06.16.