//----------------------------------- 全局封装好的 刷新加载 可以直接 复制-----------------------------------------------------// getSrl(R.id.srl_layout).setOnLoadMoreListener(this::OnLoadMoreListener); getSrl(R.id.srl_layout).setOnRefreshListener(this::OnRefreshListener); mConAdapter.setOnItemClickListener(this::OnItemClickListener); protected void initData() { String mPosition = getString(ConstantUtils.Bundle.Position); mApi = new ItemPageListItemApi(); mApi.setPageNum(1); mApi.setPageSize(20); mApi.setIdCategory(StringUtils.equals("0", mPosition) ? "" : mPosition); showLoading(); getSrl(R.id.srl_layout).autoRefresh(); } /** 重试 */ private void OnRetryListener(StatusLayout statusLayout) { showLoading(); getSrl(R.id.srl_layout).autoRefresh(); } /** 刷新 */77 private void OnRefreshListener(RefreshLayout refreshLayout) { mApi.setPageNum(1); httpData(); } /** 加载 */ private void OnLoadMoreListener(RefreshLayout refreshLayout) { httpData(); } /** http */ private void httpData() { EasyHttp.get(this).api(mApi).request(new HttpCallback>(this) { @Override public void onSucceed(HttpListData result) { super.onSucceed(result); ArrayList data = result.getBody().getData(); if (data.isEmpty()) { showEmpty(); getSrl(R.id.srl_layout).finishRefresh(); getSta(R.id.sta_layout).setOnRetryListener(ShopAllActivity.this::OnRetryListener); return; } showComplete(); if (getSrl(R.id.srl_layout).getState() == RefreshState.Refreshing) { mConAdapter.setNewInstance(data); getSrl(R.id.srl_layout).finishRefresh(); } if (getSrl(R.id.srl_layout).getState() == RefreshState.Loading) { mConAdapter.addData(data); getSrl(R.id.srl_layout).finishLoadMore(); } if (data.size() < mApi.getPageSize()) { getSrl(R.id.srl_layout).finishLoadMoreWithNoMoreData(); } else { mApi.setPageNum(mApi.getPageNum() + 1); } } }); } text //-----------------------------------刷新加载-----------------------------------------------------// //圆形 GlideApp.with(getContentView().getContext()).load(httpUrl).placeholder(placeholder).error(error).into(imageView); //圆角 GlideApp.with(getContentView().getContext()).load(httpUrl) .transform(new MultiTransformation<>(new CenterCrop(), new RoundedCorners((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, imageView.getContext().getResources().getDisplayMetrics())))) .into(imageView); // 工具类:https://github.com/Blankj/AndroidUtilCode implementation 'com.blankj:utilcodex:1.30.6' //LiveBus: https://github.com/JeremyLiao/LiveEventBus implementation 'io.github.jeremyliao:live-event-bus-x:1.8.0' 图片视频选择器详细用法 github https:github.com/wildma/PictureSelector lombok: 插件注解用法 https://juejin.cn/post/6844903557016076302 需要安装的插件 Android Parcelable code generator GoogleLibraryVersionQuerier GsonFormatPlus Lombok action 包中 包含所需要的注入 Actigon 可提供相应的个功能 实例化后可以直接使用 aop 包中 包含所需要的 注入插件 例如拦截器 日志 权限 点击 可根据不同需要加入自己所需要的插件 build.gradle 是包含 所有配置信息 三方库 对应的有啥库地址 打开可查看 common.gradle 统一配置库 libary 共用 详见内容 configs.gradle config配置文件 框架要求详情看 AppActivity AppFragment 每个文件代码都有注解