1.BaseActivity:
public abstract class BaseActivity extends AppCompatActivity { private Unbinder mUnbinder; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setStateBarColor(); } public void setStateBarColor(){ setStateBarColor(R.color.color_3d5b96); } public void setStateBarColor(@ColorRes int color){ if(VERSION.SDK_INT >= 21){ Window window = this.getWindow(); //取消设置透明状态栏,使 ContentView 内容不再覆盖状态栏 window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); //需要设置这个 flag 才能调用 setStatusBarColor 来设置状态栏颜色 window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); //设置状态栏颜色 window.setStatusBarColor(getResources().getColor(color)); } } @Override public void setContentView(@LayoutRes int layoutResID) { super.setContentView(layoutResID); mUnbinder = ButterKnife.bind(this); findViews(); init(); } protected abstract void findViews(); protected abstract void init(); @Override protected void onStart() { super.onStart(); } @Override protected void onStop() { super.onStop(); } @Override protected void onDestroy() { super.onDestroy(); mUnbinder.unbind(); }}
应用activity:
public class GalleryActivity extends BaseActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_gallery); } @Override protected void findViews() { } @Override protected void init() { }2.basefragment:
public abstract class BaseFragment extends RxFragment { private Unbinder mUnbinder; @Override public void onAttach(Context context) { super.onAttach(context); } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) { View view; if (getLayoutView() != null) { view = getLayoutView(); mUnbinder = ButterKnife.bind(this, view); } else { view = inflater.inflate(getLayoutId(), null); mUnbinder = ButterKnife.bind(this, view); } return view; } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); //设置状态栏默认颜色为蓝色 StatusBarCompat.setStatusBarColor(getActivity(), ContextCompat.getColor(getContext(), R.color.color_3d5b96)); } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); initData(); } @Override public void onDestroyView() { super.onDestroyView(); mUnbinder.unbind(); } /** * 在此方法中初始化数据 */ public abstract void initData(); public abstract int getLayoutId(); public View getLayoutView() { return null; } }应用:
public class ShowFragment extends BaseFragment{ @BindView(R.id.proflie_edit) ViewGroup mProfileEidt; //编辑 private UserProfileShowContract.Presenter mPresenter; public static UserProfileShowFragment newInstance() { Bundle args = new Bundle(); UserProfileShowFragment fragment = new UserProfileShowFragment(); fragment.setArguments(args); return fragment; } public void setPresenter(@NonNull UserProfileShowContract.Presenter presenter) { mPresenter = presenter; } @Override public void initData() { mPresenter.start(); updateView(); } @Override public int getLayoutId() { return R.layout.fragment_me_profile_show; } @Override public void onResume() { super.onResume(); mPresenter.updateDataIfNeed(); } @Override public void onStop() { super.onStop(); } }