您的位置:首页 > 移动开发 > Android开发

Android开发truck快速开发框架Activity、Fragment(三)

2018-01-23 11:20 288 查看

简介

 truck项目的github地址:https://github.com/hookYuan/Truck
对于一个快速开发的Android端框架来说,Activity和Fragment是开发中必不可少的两个话题。从代码的设计模式来看,我们可以把

Activity和Fragment都看作是MVP中的View,因此在Activity和Fragment中,我主要是封装了一些基本操作和常用View的相关操作。
以下主要通过两个方面来分别讲解Activity和fragment各自的基本使用。最后在讲解一下他们如何实现快速开发。

示例

 truck快速开发框架中对Activity做了很多的封装,第一层为BaseActivity,BaseActivity继承自RxAppCompatActivity,而RxAppCompatActivity
主要用作管理RxJava的生命周期,确保线程安全销毁。第二层为TitleActivity,TitleActivity主要是默认在界面中添加Titlebar,可以
自由设置Titlebar的相关操作。例如:
getTitleBar().setTitleAndStatusBgColor(ContextCompat.getColor(this, com.yuan.basemodule.R.color.transparent)).
setFontColor(ContextCompat.getColor(this, R.color.white))
.setToolbar("青花瓷");

titlbar在后面会做详细讲解,只要继承TitleActivity即可无须再布局文件中添加title,调用getTitleBar()方法即可对titlebar进行操作。第
三层为ExtraActivity。这里是对Activity的扩展功能。默认只对Activity做了3个扩展:

扩展一,下拉刷新。对下拉刷新实现方式这里采用的是三方控件,默认采用SmartRefreshLayout,可以通过HRefresh替换刷新控件。使用方法为ExtraActivity继承IRefresh接口,重写刷新方法即可。
扩展二,状态控制器。这里的状态控制器,主要是指在Activity正常加载时,如果出现没有网络或者服务器当前数据为空的情况下展示的界面切换。
扩展三,ISwipBack。在Activity实现界面右滑返回。如需使用,只需要当前ExtraActivity实现ISwipBack接口即可。
之前在MVP篇讲到的MVPActivity则是继承自ExtraActivity。除了ExtraActivity,这里还有一个比较重要的FragmentActivity。FragmentActivity主要是封装了对Fragment的重复性代码,配合LazyFragment,简单实现了对Fragment的延迟加载。FragmentActivity中基本用法如下:
public class MainActivity extends FragmentActivity {

@Override
public int getLayoutId() {
return R.layout.activity_main;
}

@Override
public void initData(Bundle savedInstanceState) {
addFragment(R.id.content,TestFragment.class, TestFragment2.class);
Button btn01 = (Button) findViewById(R.id.btn_01);
btn01.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showFragment(0);
}
});
Button btn02 = (Button) findViewById(R.id.btn_02);
btn02.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showFragment(1);
}
});
}
}
在FragmentActivity中通过addFragment添加你需要添加的Fragment,通过反射类型,生成对应的Fragment实例,通过showFragment()方法控制显示的fragment,这里传入的下标为添加Fragment中的顺序。并且,如果Fragment继承自LazyFragment,当前尽当fragment显示时才会执行initData中的代码,实现延迟加载。提高app初次加载速度。
由于Fragment中和Activity的基本功能封装都是一一对应的,所以这里就不在重复介绍Fragment。

快速开发

前面讲了Acitivty和Fragment的基本用法,这里谈一下他们分别适合什么样的应用场景,在什么样的情况下可以达到事半功倍的效果。

有公共titlebar的情况下,可以快速实现TitleBar的高度定制。
需要在Activity中显示Fragment的时候,可以简化Fragment初始化过程。
当Activity有太多需要扩展的功能时,比如右滑返回。可以使用ExtraActivity快速扩展。

最后附上truck快速开发交流qq群:698442320
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: