Skip to content

flyisme/FragmentMvpFramework

Repository files navigation

自用MVP框架 支持单View多Presenter的绑定销毁。

基于开源项目 .Fragmentation修改,集成了滑动关闭fragment以及切换动画。

为"单Activity + 多Fragment","多模块Activity + 多Fragment"架构而生,简化开发,轻松解决动画、嵌套、事务相关等问题。

网络请求使用RxJava2+retrofit2。

使用rxlifecycle处理Rxjava生命周期与Activity和Fragment生命周期协同问题。

dagger2依赖注入

如何使用

1. 根目录下的build.gradle中依赖:

allprojects {
		repositories {
			...
			maven { url 'https://www.jitpack.io' }
		}
	}

1. 项目app的build.gradle中依赖:

dependencies {
	        dependencies {
	        implementation 'com.github.flyisme:FragmentMvpFramework:master-SNAPSHOT'
			//Dagger2注解依赖
			annotationProcessor "com.google.dagger:dagger-compiler:2.7"
	}

**2. Activity extends MvpActivity(继承自RxAppCompatActivity)

public class MainActivity extends MvpActivity {

    private long time_start = 0;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if (findFragment(ContentFragment.class) == null) {
            loadRootFragment(R.id.content, ContentFragment.newInstance());  // 加载根Fragment
        }
		//更多使用参考[Fragmentation]支持类似Activity的启动方式eg:startForResult(ISupportFragment toFragment, int requestCode)...

    }

**3. Fragment extends MvpFragment(继承自RxFragment) public class ContentFragment extends MvpFragment //dagger2依赖注入 @Inject ContentFragmentPresenter mPresenter;

@Override
public ContentFragmentPresenter getPresenter() {
    if (mPresenter == null) {
        ShApplication.get(_mActivity).getAppComponent().getMainComponent().inject(this);
        changeArgs();
    }
    return mPresenter;
}

}

超类完成presenter的绑定与销毁

About

基于单Activity多Fragmentd的MVP框架

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages