Download JitPack CI CircleCI API License Blog
Base是针对于Android开发封装好一些常用的基类,主要包括通用的Adapter、Activity、Fragment、Dialog等、和一些常用的Util类,只为更简单。
Base 3.x 在Base 2.x 的基础上进行了重构,最大的变化是将base-adapter和base-util提取了出来。
单独提取library主要是为了模块化,使其更加独立。在使用时需要用哪个库就引入库,这样就能尽可能的减少引入库的体积。
- base 主要是封装了常用的Activity、Fragment、DialogFragment、Dialog等作为基类,方便使用。
- base-adapter 主要是封装了各种Adapter、简化自定义Adapter步骤,让写自定义适配器从此更简单。
- base-util 主要是封装了一些常用的工具类。
//base
<dependency>
<groupId>com.king.base</groupId>
<artifactId>base</artifactId>
<version>3.2.1</version>
<type>pom</type>
</dependency>
//base-adapter
<dependency>
<groupId>com.king.base</groupId>
<artifactId>adapter</artifactId>
<version>3.2.1</version>
<type>pom</type>
</dependency>
//base-util
<dependency>
<groupId>com.king.base</groupId>
<artifactId>util</artifactId>
<version>3.2.1</version>
<type>pom</type>
</dependency>
//---------- AndroidX 版本 //base implementation 'com.king.base:base:3.2.1-androidx' //base-adapter implementation 'com.king.base:adapter:3.2.1-androidx' //base-util implementation 'com.king.base:util:3.2.1-androidx' //---------- Android 版本 //base implementation 'com.king.base:base:3.2.1' //base-adapter implementation 'com.king.base:adapter:3.2.1' //base-util implementation 'com.king.base:util:3.2.1'
//base
<dependency org='com.king.base' name='base' rev='3.2.1'>
<artifact name='$AID' ext='pom'></artifact>
</dependency>
//base-adapter
<dependency org='com.king.base' name='adapter' rev='3.2.1'>
<artifact name='$AID' ext='pom'></artifact>
</dependency>
//base-util
<dependency org='com.king.base' name='util' rev='3.2.1'>
<artifact name='$AID' ext='pom'></artifact>
</dependency>
allprojects { repositories { //... maven { url 'https://dl.bintray.com/jenly/maven' } } }
//---------- AndroidX 版本 //base compileOnly 'androidx.appcompat:appcompat:1.0.0+' compileOnly 'com.king.base:util:3.2.1-androidx' //base-adapter compileOnly 'androidx.appcompat:appcompat:1.0.0+' compileOnly 'androidx.recyclerview:recyclerview:1.0.0+' //base-util compileOnly 'androidx.appcompat:appcompat:1.0.0+'
//---------- Android 版本 //base compileOnly 'com.android.support:appcompat-v7:28.0.0' compileOnly 'com.king.base:util:3.2.1' //base-adapter compileOnly 'com.android.support:appcompat-v7:28.0.0' compileOnly 'com.android.support:recyclerview-v7:28.0.0' //base-util compileOnly 'com.android.support:appcompat-v7:28.0.0'
Base主要实用地方体现在:出统一的代码风格,实用的各种基类,BaseActivity和BaseFragment里面还有许多实用的代码封装,只要用了Base,使用Fragment就感觉跟使用Activtiy基本是一样的。
/** * * 只需继承通用的适配器(ViewHolderAdapter或ViewHolderRecyclerAdapter),简单的几句代码,妈妈再也不同担心我写自定义适配器了。 */ public class TestAdapter extends ViewHolderAdapter<String> { public TestAdapter(Context context, List<String> listData) { super(context, listData); } @Override public View buildConvertView(LayoutInflater layoutInflater,T t,int position, ViewGroup parent) { return inflate(R.layout.list_item,parent,false); } @Override public void bindViewDatas(ViewHolder holder, String s, int position) { holder.setText(R.id.tv,s); } }
public class TestActivity extends BaseActivity { private TextView tv; private Button btn; @Override public void initUI() { //TODO:初始化UI setContentView(R.layout.activity_test); tv = findView(R.id.tv); btn = findView(R.id.btn); } @Override public void initData() { //TODO:初始化数据(绑定数据) tv.setText("text"); } }
public class TestGestureActivity extends GestureActivity { private TextView tv; private Button btn; @Override public void initUI() { //TODO:初始化UI setContentView(R.layout.activity_test); tv = findView(R.id.tv); btn = findView(R.id.btn); } @Override public void initData() { //TODO:初始化数据(绑定数据) tv.setText("text"); } @Override public void onLeftFling() { //TODO:向左滑动 } @Override public boolean onRightFling() { //TODO:向右滑动,默认执行finish,返回为true表示拦截事件。 return false; } }
public class TestSplashActivity extends SplashActivity { @Override public int getContentViewId() { return R.layout.activity_splash; } @Override public Animation.AnimationListener getAnimationListener() { return new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { //TODO: 启动动画结束,可执行跳转逻辑 } @Override public void onAnimationRepeat(Animation animation) { } }; } }
public class TestFragment extends BaseFragment { @Override public int inflaterRootView() { return R.layout.fragment_test; } @Override public void initUI() { //TODO:初始化UI } @Override public void initData() { //TODO:初始化数据(绑定数据) } }
public class TestDialogFragment extends BaseDialogFragment { @Override public int inflaterRootView() { return R.layout.fragment_test_dialog; } @Override public void initUI() { //TODO:初始化UI } @Override public void initData() { //TODO:初始化数据(绑定数据) } }
WebFragment实现基本webView功能使用Log: 统一控制管理Log
LogUtils.v(); LogUtils.d(); LogUtils.i(); LogUtils.w(); LogUtils.e(); LogUtils.twf(); LogUtils.println();
使用Toast
showToast(CharSequence text); showToast(@StringRes int resId);
使用Dialog
showDialog(View v);
showProgressDialog(); showProgressDialog(@LayoutRes int resId); showProgressDialog(View v);
App中的源码使用示例或直接查看API帮助文档。更多实用黑科技,请速速使用Base体会吧。
- 优化部分细节,为迁移AndroidX版本做准备
- 支持AndroidX对应版本
- 统一版本,方便维护
- 未记录版本日志
如果您喜欢Base,或感觉Base帮助到了您,可以点右上角"Star"支持一下,您的支持就是我的动力,谢谢 😃
您也可以扫描下面的二维码,请作者喝杯咖啡 ☕
Name: Jenly
Email: jenly1314#gmail.com / jenly1314#vip.qq.com
CSDN: jenly121
Github: jenly1314
加入QQ群: 20867961