package com.doumee.lib_coremodel.base;
|
|
import android.content.Intent;
|
import android.os.Bundle;
|
|
import androidx.annotation.IdRes;
|
import androidx.annotation.Nullable;
|
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.ViewDataBinding;
|
import androidx.fragment.app.Fragment;
|
|
import com.doumee.lib_coremodel.R;
|
|
|
/**
|
* 用于容纳Fragment的通用Activity,相当于一个Fragment容器,通过{@link Intent} 传递参数和标识,然后实现{@link #switchFragment}处理对应的逻辑
|
* @author <a href="mailto:jenly1314@gmail.com">Jenly</a>
|
*/
|
public abstract class ContentActivity extends BaseActivity<DataViewModel, ViewDataBinding> {
|
|
|
@Override
|
public int getLayoutId() {
|
return R.layout.mvvmframe_content_activity;
|
}
|
|
@Override
|
public void initData(@Nullable Bundle savedInstanceState) {
|
switchFragment(getIntent());
|
}
|
|
/**
|
* 不使用DataBinding {@link DataBindingUtil}
|
* @return
|
*/
|
@Override
|
public boolean isBinding() {
|
return false;
|
}
|
|
/**
|
* 通过{@link #getSupportFragmentManager()}将布局替换成{@link Fragment},如在{@link #switchFragment(Intent)}方法中使用
|
* @param fragment
|
*/
|
protected void replaceFragment(Fragment fragment){
|
replaceFragment(R.id.fragmentContent,fragment);
|
}
|
|
/**
|
* 通过{@link #getSupportFragmentManager()}将布局替换成{@link Fragment}
|
* @param fragment
|
*/
|
protected void replaceFragment(@IdRes int id, Fragment fragment) {
|
getSupportFragmentManager().beginTransaction().replace(id, fragment).commit();
|
}
|
|
/**
|
* 切换Fragment
|
* @param intent 通过{@link Intent} 传递参数和标记来判断对应展示某个{@link Fragment}
|
*/
|
protected abstract void switchFragment(Intent intent);
|
}
|