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 Jenly
*/
public abstract class ContentActivity extends BaseActivity {
@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);
}