RapidDev
致力于android快速开发,采用databind并集成目前流行的开发库如:retrofit,glid,rxjava等
添加依赖
dependencies {
compile 'com.github.aii1991:AndroidRapidDev:v1.1.0'
}使用
继承BaseApplication并在onCreate中初始化配置即可使用
public class MyApplication extends BaseApplication{ @Override public void onCreate() { super.onCreate(); BFConfig.getInstance().init(new BaseConfig.Builder() .setBaseUrl("http://gank.io/") .setDebug(true).build()); } }
配置选项
| 方法名 | 作用 |
|---|---|
| setDebug | 是否开启调试模式 |
| setPageSize | 设置分页大小 |
| setBaseUrl | 设置网络请求前缀地址 |
| setRetrofitConnectTimeout | 设置连接超时时间,默认30秒 |
| setRetrofitReadTimeout | 设置读取超时时间,默认60秒 |
| setRetrofitWriteTimeout | 设置写入超时时间,默认60秒 |
| setImageCacheSize | 设置图片磁盘缓存大小,默认100M |
| setImageCacheFileName | 设置缓存目录名称,默认CACHE_IMG |
| setLoadingImage | 设置图片加载时图片 |
| setLoadFailImage | 设置图片加载失败时图片 |
| setRspCheckInterceptor | 设置处理网络请求响应数据方法 |
| setApiQueryCacheMode | 设置查询缓存模式 0=不进行缓存,1=无网络时从缓存中获取数据 |
| setRspCacheTime | 设置缓存数据的缓存时间,默认7天 |
快速实现列表
public class MainVM extends PagingVM<ImageBean>{ private ImageRepository mImageRepository; public MainVM(BaseActivity rxActivity){ mImageRepository = ImageRepository.create(rxActivity); } public ReplyCommand<Integer> mItemClickListener = new ReplyCommand<>((position) -> Toast.makeText(MyApplication.mInstance,"click position => "+ position,Toast.LENGTH_LONG).show()); @Override public IPagingService<ImageBean> getPagingService() { return (page, pageSize, onSuccess, onError, onComplete) -> mImageRepository .getImageList(page,pageSize) .subscribe(onSuccess,onError,onComplete); } @Override public int getVariableId() { return BR.imageBean; } }
public class MainActivity extends BaseActivity { MainVM mainVM; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main); mainVM = new MainVM(this); binding.setMainVm(mainVM); mainVM.startGetData(); } }
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:bind="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"> <data> <variable name="mainVm" type="com.boildcoffee.rapiddev.viewmodel.MainVM" /> <import type="com.boildcoffee.base.bindingadapter.LayoutManagers" /> </data> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v4.widget.SwipeRefreshLayout bind:pageVM="@{mainVm}" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.RecyclerView android:background="@android:color/holo_blue_dark" bind:layoutManager="@{LayoutManagers.linear()}" bind:pageVM="@{mainVm}" bind:itemViewId="@{@layout/main_item}" bind:BRName="@{mainVm.getVariableId()}" bind:onItemClickListener="@{mainVm.mItemClickListener}" android:layout_width="match_parent" android:layout_height="match_parent" /> </android.support.v4.widget.SwipeRefreshLayout> </LinearLayout> </layout>
main_item.xml
<?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:bind = "http://schemas.android.com/apk/res-auto"> <data> <variable name="imageBean" type="com.boildcoffee.rapiddev.bean.ImageBean" /> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" bind:cardCornerRadius="10dp" bind:cardUseCompatPadding="true"> <ImageView android:background="@android:color/black" bind:loadUrl="@{imageBean.getUrl()}" android:layout_width="match_parent" android:layout_height="250dp" /> </android.support.v7.widget.CardView> </LinearLayout> </layout>
日志打印
import com.orhanobut.logger.Logger; Logger.d("logger");
BindAdapter
- RecyclerView
| 名称 | 作用 |
|---|---|
| bind:pageVM | 绑定继承PagingVM的VM |
| bind:layoutManager | 设置布局管理器 |
| bind:itemViewId | 设置item布局文件id |
| bind:BRName | 绑定item中的variable |
| bind:onItemClickListener | 设置点击事件 |
- SwipeRefreshLayout
| 名称 | 作用 |
|---|---|
| bind:pageVM | 绑定继承PagingVM的VM,主要配合RecyclerView一起使用 |
- ImageView
| 名称 | 作用 |
|---|---|
| bind:activity | 绑定activity |
| bind:fragment | 绑定fragment |
| bind:loadUrl | 设定加载图片地址 |
| bind:preLoadThumbnail | 设置加载图片小图地址 |
目前还在持续更新中
