项目作者: jenly1314

项目描述 :
? Base是针对于Android开发封装好一些常用的基类,主要包括通用的Adapter、Activity、Fragment、Dialog等、和一些常用的Util类,只为更简单。
高级语言: Java
项目地址: git://github.com/jenly1314/Base.git


Base

Image

JitPack
Download
API
License

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 主要是封装了一些常用的工具类。

效果展示

Image

你也可以直接下载 演示App 体验效果

引入

Gradle:

  1. 在Project的 build.gradlesetting.gradle 中添加远程仓库

    1. repositories {
    2. //...
    3. mavenCentral()
    4. maven { url 'https://jitpack.io' }
    5. }
  2. 在Module的 build.gradle 中添加依赖项

    1. //--------- AndroidX
    2. // base
    3. implementation 'com.github.jenly1314.Base:base:3.2.1-androidx'
    4. // adapter
    5. implementation 'com.github.jenly1314.Base:adapter:3.2.1-androidx'
    6. // util
    7. implementation 'com.github.jenly1314.Base:uitl:3.2.1-androidx'

    1. //--------- Android Support
    2. // base
    3. implementation 'com.github.jenly1314.Base:base:3.2.1'
    4. // adapter
    5. implementation 'com.github.jenly1314.Base:adapter:3.2.1'
    6. // util
    7. implementation 'com.github.jenly1314.Base:uitl:3.2.1'

使用

简要说明

Base主要实用地方体现在:出统一的代码风格,实用的各种基类,BaseActivity和BaseFragment里面还有许多实用的代码封装,只要用了Base,使用Fragment就感觉跟使用Activtiy基本是一样的。

代码示例

通用的Adapter

  1. /**
  2. *
  3. * 只需继承通用的适配器(ViewHolderAdapter或ViewHolderRecyclerAdapter),简单的几句代码,妈妈再也不同担心我写自定义适配器了。
  4. */
  5. public class TestAdapter extends ViewHolderAdapter<String> {
  6. public TestAdapter(Context context, List<String> listData) {
  7. super(context, listData);
  8. }
  9. @Override
  10. public View buildConvertView(LayoutInflater layoutInflater,T t,int position, ViewGroup parent) {
  11. return inflate(R.layout.list_item,parent,false);
  12. }
  13. @Override
  14. public void bindViewDatas(ViewHolder holder, String s, int position) {
  15. holder.setText(R.id.tv,s);
  16. }
  17. }

基类BaseActivity

  1. public class TestActivity extends BaseActivity {
  2. private TextView tv;
  3. private Button btn;
  4. @Override
  5. public void initUI() {
  6. //TODO:初始化UI
  7. setContentView(R.layout.activity_test);
  8. tv = findView(R.id.tv);
  9. btn = findView(R.id.btn);
  10. }
  11. @Override
  12. public void initData() {
  13. //TODO:初始化数据(绑定数据)
  14. tv.setText("text");
  15. }
  16. }

GestureActivity

  1. public class TestGestureActivity extends GestureActivity {
  2. private TextView tv;
  3. private Button btn;
  4. @Override
  5. public void initUI() {
  6. //TODO:初始化UI
  7. setContentView(R.layout.activity_test);
  8. tv = findView(R.id.tv);
  9. btn = findView(R.id.btn);
  10. }
  11. @Override
  12. public void initData() {
  13. //TODO:初始化数据(绑定数据)
  14. tv.setText("text");
  15. }
  16. @Override
  17. public void onLeftFling() {
  18. //TODO:向左滑动
  19. }
  20. @Override
  21. public boolean onRightFling() {
  22. //TODO:向右滑动,默认执行finish,返回为true表示拦截事件。
  23. return false;
  24. }
  25. }

SplashActivity

  1. public class TestSplashActivity extends SplashActivity {
  2. @Override
  3. public int getContentViewId() {
  4. return R.layout.activity_splash;
  5. }
  6. @Override
  7. public Animation.AnimationListener getAnimationListener() {
  8. return new Animation.AnimationListener() {
  9. @Override
  10. public void onAnimationStart(Animation animation) {
  11. }
  12. @Override
  13. public void onAnimationEnd(Animation animation) {
  14. //TODO: 启动动画结束,可执行跳转逻辑
  15. }
  16. @Override
  17. public void onAnimationRepeat(Animation animation) {
  18. }
  19. };
  20. }
  21. }

BaseFragment

  1. public class TestFragment extends BaseFragment {
  2. @Override
  3. public int inflaterRootView() {
  4. return R.layout.fragment_test;
  5. }
  6. @Override
  7. public void initUI() {
  8. //TODO:初始化UI
  9. }
  10. @Override
  11. public void initData() {
  12. //TODO:初始化数据(绑定数据)
  13. }
  14. }

BaseDialogFragment

  1. public class TestDialogFragment extends BaseDialogFragment {
  2. @Override
  3. public int inflaterRootView() {
  4. return R.layout.fragment_test_dialog;
  5. }
  6. @Override
  7. public void initUI() {
  8. //TODO:初始化UI
  9. }
  10. @Override
  11. public void initData() {
  12. //TODO:初始化数据(绑定数据)
  13. }
  14. }

WebFragment

  1. WebFragment实现基本webView功能

其他小功能

使用Log:
统一控制管理Log

  1. LogUtils.v();
  2. LogUtils.d();
  3. LogUtils.i();
  4. LogUtils.w();
  5. LogUtils.e();
  6. LogUtils.twf();
  7. LogUtils.println();

使用Toast

  1. showToast(CharSequence text);
  2. showToast(@StringRes int resId);

使用Dialog

  1. showDialog(View v);
  1. showProgressDialog();
  2. showProgressDialog(@LayoutRes int resId);
  3. showProgressDialog(View v);

更多使用详情,请查看app中的源码使用示例或直接查看API帮助文档

相关推荐

  • MVVMFrame 一个基于Google官方推出的JetPack构建的MVVM快速开发框架。
  • AppTemplate 一款基于 MVVMFrame 构建的App模板。
  • AppUpdater 一个专注于App更新,一键傻瓜式集成App版本升级的轻量开源库。
  • RetrofitHelper 一个支持动态改变BaseUrl,动态配置超时时长的Retrofit帮助类。
  • BaseUrlManager 一个BaseUrl管理器,主要用于打测试包时,一个App可动态切换到不同的开发环境或测试环境。
  • SuperTextView 一个在TextView的基础上扩展了几种动画效果的控件。
  • ImageViewer 一个图片查看器,一般用来查看图片详情或查看大图时使用。
  • GuidePage 一个App欢迎引导页。一般用于首次打开App时场景,通过引导页指南,概述App特色等相关信息。
  • LogX 一个轻量而强大的日志框架;好用不解释。
  • KVCache 一个便于统一管理的键值缓存库;支持无缝切换缓存实现。
  • AndroidKTX 一个简化 Android 开发的 Kotlin 工具类集合。
  • AndroidUtil 一个整理了Android常用工具类集合,平时在开发的过程中可能会经常用到。

版本日志

v3.2.1:2019-7-1

  • 优化部分细节,为迁移AndroidX版本做准备
  • 支持AndroidX对应版本

v3.2.0:2019-5-28

  • 统一版本,方便维护

v3.1.2: 很久以前…

  • 未记录版本日志

footer