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); }