您的位置:首页 > 其它

构建BaseActivity BaseFragment

2017-05-11 11:06 183 查看
1.BaseActivity:
public abstract class BaseActivity extends AppCompatActivity  {private Unbinder mUnbinder;@Overrideprotected 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));}}@Overridepublic void setContentView(@LayoutRes int layoutResID) {super.setContentView(layoutResID);mUnbinder = ButterKnife.bind(this);findViews();init();}protected abstract void findViews();protected abstract void init();@Overrideprotected void onStart() {super.onStart();}@Overrideprotected void onStop() {super.onStop();}@Overrideprotected void onDestroy() {super.onDestroy();mUnbinder.unbind();}
}应用activity:public class GalleryActivity extends BaseActivity {@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_gallery);}@Overrideprotected void findViews() {}@Overrideprotected void init() {}2.basefragment:public abstract class BaseFragment extends RxFragment {private Unbinder mUnbinder;@Overridepublic void onAttach(Context context) {super.onAttach(context);}@Overridepublic void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);}@Nullable@Overridepublic 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;}@Overridepublic void onViewCreated(View view, Bundle savedInstanceState) {super.onViewCreated(view, savedInstanceState);//设置状态栏默认颜色为蓝色StatusBarCompat.setStatusBarColor(getActivity(), ContextCompat.getColor(getContext(), R.color.color_3d5b96));}@Overridepublic void onActivityCreated(@Nullable Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);initData();}@Overridepublic 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;}@Overridepublic void initData() {mPresenter.start();updateView();}@Overridepublic int getLayoutId() {return R.layout.fragment_me_profile_show;}@Overridepublic void onResume() {super.onResume();mPresenter.updateDataIfNeed();}@Overridepublic void onStop() {super.onStop();}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息