Skip to content

Commit 0c4ae6c

Browse files
committed
1、修改FastLoadMoreView及FastMultiStatusView 的Builder模式将默认配置参数放置其中不在FastConfig初始化
2、优化Demo过度绘制情况及截图
1 parent 26e3905 commit 0c4ae6c

21 files changed

+164
-124
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,8 @@ dependencies {
128128

129129
![](https://github.com/AriesHoo/FastLib/blob/master/screenshot/00.gif)
130130

131+
![开启GPU过度绘制检测+GPU呈现模式分析](https://github.com/AriesHoo/FastLib/blob/master/screenshot/01.gif)
132+
131133
## 鸣谢
132134

133135
* [ButterKnife-注解](https://github.com/JakeWharton/butterknife)

apk/sample.apk

-336 Bytes
Binary file not shown.

app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ android {
1414
applicationId "com.aries.library.fast.demo"
1515
minSdkVersion ext.minSdkVersion
1616
targetSdkVersion ext.targetSdkVersion
17-
versionCode 216
18-
versionName "2.1.6-alpha"
17+
versionCode 217
18+
versionName "2.1.7-alpha"
1919
multiDexEnabled true
2020
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
2121
buildConfigField "String", "BASE_URL", "\"https://api.douban.com/\""

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
<!-- 应用内浏览器 -->
4545
<activity
4646
android:name=".module.WebViewActivity"
47+
android:screenOrientation="landscape"
4748
android:configChanges="locale|layoutDirection|mcc|mnc|orientation|screenSize"
4849
android:hardwareAccelerated="true"/>
4950
<!-- 滑动返回Activity-微信效果 -->

app/src/main/java/com/aries/library/fast/demo/App.java

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,6 @@ public void onCreate() {
7272
FastTitleConfigEntity titleConfig = FastConfig.getInstance(mContext).getTitleConfig();
7373
//全局主页面返回键操作设置--推荐先获取library里默认主页面点击返回键配置FastQuitConfigEntity配置再按需修改的模式 FastQuitConfigEntity
7474
FastQuitConfigEntity quitConfig = FastConfig.getInstance(mContext).getQuitConfig();
75-
//全局列表Adapter加载更多View相关设置--推荐先获取library里默认参数配置FastLoadMoreView.Builder按需set属性后最终build
76-
FastLoadMoreView.Builder loadMoreViewBuilder = FastConfig.getInstance(mContext).getLoadMoreViewBuilder();
77-
//全局列表多状态布局设置--推荐先获取library里默认多布局参数配置FastMultiStatusView.Builder再按需set属性后最终build
78-
FastMultiStatusView.Builder multiStatusViewBuilder = FastConfig.getInstance(mContext).getMultiStatusViewBuilder();
7975
FastConfig.getInstance(mContext)
8076
// 设置全局TitleBarView-其它属性请查看getInstance默认设置
8177
.setTitleConfig(titleConfig
@@ -107,7 +103,8 @@ public void onCreate() {
107103
.setSwipeBackEnable(true, this)
108104
//设置Activity横竖屏模式
109105
.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
110-
.setContentViewBackgroundResource(R.color.colorBackground)//设置Activity或Fragment根布局背景资源
106+
//设置Activity或Fragment根布局背景资源
107+
// .setContentViewBackgroundResource(R.color.colorBackground)
111108
//设置Adapter加载更多视图--默认设置了FastLoadMoreView
112109
.setLoadMoreFoot(new LoadMoreFoot() {
113110
@Nullable
@@ -120,10 +117,11 @@ public LoadMoreView createDefaultLoadMoreView(BaseQuickAdapter adapter) {
120117
adapter.openLoadAnimation(BaseQuickAdapter.SCALEIN);
121118
}
122119
//方式一:设置FastLoadMoreView--可参考FastLoadMoreView.Builder相应set方法
123-
return loadMoreViewBuilder
120+
//默认配置请参考FastLoadMoreView.Builder(mContext)里初始化
121+
return new FastLoadMoreView.Builder(mContext)
124122
// //设置Loading 颜色-5.0以上有效
125123
// .setLoadingProgressColor(Color.MAGENTA)
126-
// //设置Loading drawable--会是Loading颜色失效
124+
// //设置Loading drawable--会使Loading颜色失效
127125
// .setLoadingProgressDrawable(mContext.getResources().getDrawable(R.drawable.dialog_loading_wei_bo))
128126
// //设置全局TextView颜色
129127
// .setLoadTextColor(Color.MAGENTA)
@@ -145,16 +143,35 @@ public LoadMoreView createDefaultLoadMoreView(BaseQuickAdapter adapter) {
145143
// return MyLoadMoreView();
146144
}
147145
})
146+
//设置RecyclerView加载过程多布局属性
148147
.setMultiStatusView(new MultiStatusView() {
149148
@NonNull
150149
@Override
151150
public IMultiStatusView createMultiStatusView() {
152151
//根据具体情况可设置更多属性具体请参考FastMultiStatusView.Builder里set方法
153-
return multiStatusViewBuilder
152+
//默认设置请参考Builder(Context context)里初始化
153+
return new FastMultiStatusView.Builder(mContext)
154+
// .setTextColor(getResources().getColor(R.color.colorMultiText))
155+
// .setTextSize(getResources().getDimensionPixelSize(R.dimen.dp_multi_text_size))
156+
// .setLoadingProgressColor(getResources().getColor(R.color.colorMultiProgress))
157+
// .setLoadingTextColor(getResources().getColor(R.color.colorMultiProgress))
158+
// .setLoadingText(getText(R.string.fast_multi_loading))
159+
// .setEmptyText(getText(R.string.fast_multi_empty))
160+
// .setErrorText(getText(R.string.fast_multi_error))
161+
// .setNoNetText(getText(R.string.fast_multi_network))
162+
// .setTextMargin(getResources().getDimensionPixelSize(R.dimen.dp_multi_margin))
163+
// .setImageWidthHeight(getResources().getDimensionPixelSize(R.dimen.dp_multi_image_size))
164+
// .setEmptyImageDrawable(FastUtil.getTintDrawable(
165+
// getResources().getDrawable(R.drawable.fast_img_multi_empty), getResources().getColor(R.color.colorMultiText)))
166+
// .setErrorImageDrawable(FastUtil.getTintDrawable(
167+
// getResources().getDrawable(R.drawable.fast_img_multi_error), getResources().getColor(R.color.colorMultiText)))
168+
// .setNoNetImageDrawable(FastUtil.getTintDrawable(
169+
// getResources().getDrawable(R.drawable.fast_img_multi_network), getResources().getColor(R.color.colorMultiText)))
154170
.build();
155171
}
156172
})
157-
.setDefaultRefreshHeader(new DefaultRefreshHeaderCreater() {//设置SmartRefreshLayout刷新头-自定加载使用BaseRecyclerViewAdapterHelper
173+
//设置SmartRefreshLayout刷新头-自定加载使用BaseRecyclerViewAdapterHelper
174+
.setDefaultRefreshHeader(new DefaultRefreshHeaderCreater() {
158175
@NonNull
159176
@Override
160177
public RefreshHeader createRefreshHeader(Context context, RefreshLayout layout) {

app/src/main/java/com/aries/library/fast/demo/module/activity/ActivityFragment.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,11 @@ public static ActivityFragment newInstance() {
5151
return fragment;
5252
}
5353

54+
@Override
55+
public int getContentBackground() {
56+
return 0;
57+
}
58+
5459
@Override
5560
public void beforeSetContentView() {
5661
super.beforeSetContentView();
@@ -116,11 +121,6 @@ private void setTab() {
116121
}
117122
}
118123

119-
@Override
120-
public void loadData() {
121-
super.loadData();
122-
}
123-
124124
private List<String> getTitles(int array) {
125125
return Arrays.asList(getResources().getStringArray(array));
126126
}
@@ -131,4 +131,5 @@ public void refreshActivityTab(boolean isSliding) {
131131
setTitleBar(mTitleBar);
132132
setTab();
133133
}
134+
134135
}

app/src/main/java/com/aries/library/fast/demo/module/main/MainActivity.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@ public boolean isSwipeEnable() {
2525
return true;
2626
}
2727

28+
@Override
29+
public int getContentBackground() {
30+
return 0;
31+
}
32+
2833
@Override
2934
public List<FastTabEntity> getTabList() {
3035
ArrayList<FastTabEntity> tabEntities = new ArrayList<>();

app/src/main/java/com/aries/library/fast/demo/module/main/sample/QQTitleActivity.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@
1414
*/
1515
public class QQTitleActivity extends FastTitleActivity {
1616

17+
@Override
18+
public int getContentBackground() {
19+
return R.color.colorBackground;
20+
}
21+
1722
@Override
1823
public boolean isLightStatusBarEnable() {
1924
return false;

app/src/main/java/com/aries/library/fast/demo/module/main/sample/SwipeBackActivity.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ public class SwipeBackActivity extends FastTitleActivity {
2626

2727
private String title;
2828

29+
@Override
30+
public int getContentBackground() {
31+
return R.color.colorBackground;
32+
}
33+
2934
public static void start(Activity mActivity, String title) {
3035
Bundle bundle = new Bundle();
3136
bundle.putString("title", title);

app/src/main/java/com/aries/library/fast/demo/module/main/sample/ali/ALiPayMainActivity.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@ protected boolean isSwipeBackEnable() {
2424
return true;
2525
}
2626

27+
@Override
28+
public int getContentBackground() {
29+
return 0;
30+
}
31+
2732
@Override
2833
public List<FastTabEntity> getTabList() {
2934
ArrayList<FastTabEntity> list = new ArrayList<>();

app/src/main/java/com/aries/library/fast/demo/module/main/sample/news/NewsMainActivity.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,12 @@ protected boolean isSwipeBackEnable() {
2929
return true;
3030
}
3131

32+
@Override
33+
public int getContentBackground() {
34+
return 0;
35+
36+
}
37+
3238
@Override
3339
public List<FastTabEntity> getTabList() {
3440
titles = getResources().getStringArray(R.array.arrays_tab_news);

app/src/main/java/com/aries/library/fast/demo/module/mine/ThirdLibraryActivity.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,11 @@ public class ThirdLibraryActivity extends FastRefreshLoadActivity<WidgetEntity>
3333
private BaseQuickAdapter mAdapter;
3434
private int animationIndex = GlobalConstant.GLOBAL_ADAPTER_ANIMATION_VALUE;
3535

36+
@Override
37+
public int getContentBackground() {
38+
return R.color.colorBackground;
39+
}
40+
3641
@Override
3742
public boolean isLoadMoreEnable() {
3843
return false;
@@ -63,7 +68,6 @@ public BaseQuickAdapter<WidgetEntity, BaseViewHolder> getAdapter() {
6368
@Override
6469
public void loadData(int page) {
6570
mAdapter.openLoadAnimation(animationIndex);
66-
mEasyStatusView.content();
6771
List<WidgetEntity> list = new ArrayList<>();
6872
String[] titles = getResources().getStringArray(R.array.arrays_library_list_title);
6973
String[] contents = getResources().getStringArray(R.array.arrays_library_list_content);
@@ -83,7 +87,6 @@ public void _onNext(List<WidgetEntity> entity) {
8387
mRefreshLayout.finishRefresh();
8488
mRefreshLayout.finishLoadmore();
8589
mAdapter.loadMoreComplete();
86-
mEasyStatusView.content();
8790
if (mRefreshLayout.isRefreshing()) {
8891
mAdapter.setNewData(entity);
8992
} else {
@@ -101,7 +104,6 @@ public void _onNext(List<WidgetEntity> entity) {
101104
mRefreshLayout.finishRefresh();
102105
mRefreshLayout.finishLoadmore();
103106
mAdapter.loadMoreComplete();
104-
mEasyStatusView.content();
105107
if (mRefreshLayout.isRefreshing()) {
106108
mAdapter.setNewData(entity);
107109
} else {

app/src/main/res/layout/activity_swipe_back.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
xmlns:app="http://schemas.android.com/apk/res-auto"
55
android:layout_width="match_parent"
66
android:layout_height="match_parent"
7-
android:background="@color/colorBackground"
87
android:orientation="vertical"
98
android:overScrollMode="never">
109

app/src/main/res/layout/item_subject_movie.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
android:paddingRight="10dp"
2626
android:paddingTop="10dp"
2727
android:textColor="@color/colorTextBlack"
28-
android:textSize="16dp"
28+
android:textSize="15dp"
2929
android:textStyle="bold"
3030
tools:text="Title"/>
3131

library/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ android {
88
defaultConfig {
99
minSdkVersion 15
1010
targetSdkVersion 25
11-
versionCode 216
12-
versionName "2.1.6-alpha"
11+
versionCode 217
12+
versionName "2.1.7-alpha"
1313
}
1414
buildTypes {
1515
release {

library/src/main/java/com/aries/library/fast/FastConfig.java

Lines changed: 3 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import android.content.pm.ActivityInfo;
66
import android.content.res.Resources;
77
import android.graphics.Color;
8-
import android.graphics.drawable.Drawable;
98
import android.os.Build;
109
import android.support.annotation.ColorInt;
1110
import android.support.annotation.DrawableRes;
@@ -114,7 +113,7 @@ public RefreshHeader createRefreshHeader(Context context, RefreshLayout layout)
114113
setLoadMoreFoot(new LoadMoreFoot() {
115114
@Override
116115
public LoadMoreView createDefaultLoadMoreView(BaseQuickAdapter adapter) {
117-
return getLoadMoreViewBuilder().build();
116+
return new FastLoadMoreView(mContext).getBuilder().build();
118117
}
119118
});
120119
}
@@ -123,7 +122,7 @@ public LoadMoreView createDefaultLoadMoreView(BaseQuickAdapter adapter) {
123122
@NonNull
124123
@Override
125124
public IMultiStatusView createMultiStatusView() {
126-
return getMultiStatusViewBuilder().build();
125+
return new FastMultiStatusView(mContext).getBuilder().build();
127126
}
128127
});
129128
}
@@ -160,7 +159,6 @@ public IMultiStatusView createMultiStatusView() {
160159
* Adapter加载更多View
161160
*/
162161
private LoadMoreFoot mLoadMoreFoot;
163-
private FastLoadMoreView.Builder mLoadMoreViewBuilder;
164162
/**
165163
* SmartRefreshLayout默认刷新头
166164
*/
@@ -169,10 +167,6 @@ public IMultiStatusView createMultiStatusView() {
169167
* 多状态布局--加载中/空数据/错误/无网络
170168
*/
171169
private MultiStatusView mMultiStatusView;
172-
/**
173-
* 多状态布局builder
174-
*/
175-
private FastMultiStatusView.Builder mMultiStatusViewBuilder;
176170

177171
public FastTitleConfigEntity getTitleConfig() {
178172
return mTitleConfig;
@@ -271,24 +265,6 @@ public FastConfig setLoadMoreFoot(LoadMoreFoot mLoadMoreFoot) {
271265
return this;
272266
}
273267

274-
/**
275-
* 获取默认配置加载更多脚布局Builder用于设置新的属性最终build 脚布局View
276-
*
277-
* @return
278-
*/
279-
public FastLoadMoreView.Builder getLoadMoreViewBuilder() {
280-
if (mLoadMoreViewBuilder == null) {
281-
mLoadMoreViewBuilder = new FastLoadMoreView().getBuilder()
282-
.setLoadTextColor(getColor(R.color.colorLoadMoreText))
283-
.setLoadTextSize(getDimensionPixelSize(R.dimen.dp_load_more_text_size))
284-
.setLoadingProgressColor(getColor(R.color.colorLoadMoreProgress))
285-
.setLoadingText(getText(R.string.fast_load_more_loading))
286-
.setLoadFailText(getText(R.string.fast_load_more_load_failed))
287-
.setLoadEndText(getText(R.string.fast_load_more_load_end));
288-
}
289-
return mLoadMoreViewBuilder;
290-
}
291-
292268
public DefaultRefreshHeaderCreater getDefaultRefreshHeader() {
293269
return mDefaultRefreshHeader;
294270
}
@@ -321,35 +297,6 @@ public FastConfig setMultiStatusView(MultiStatusView mMultiStatusView) {
321297
return this;
322298
}
323299

324-
/**
325-
* 获取多状态布局默认设置Builder用于设置新的属性最终创建FastMultiStatusView
326-
*
327-
* @return
328-
*/
329-
public FastMultiStatusView.Builder getMultiStatusViewBuilder() {
330-
if (mMultiStatusViewBuilder == null) {
331-
mMultiStatusViewBuilder = new FastMultiStatusView(mContext)
332-
.getBuilder()
333-
.setTextColor(getColor(R.color.colorMultiText))
334-
.setTextSize(getDimensionPixelSize(R.dimen.dp_multi_text_size))
335-
.setLoadingProgressColor(getColor(R.color.colorMultiProgress))
336-
.setLoadingTextColor(getColor(R.color.colorMultiProgress))
337-
.setLoadingText(getText(R.string.fast_multi_loading))
338-
.setEmptyText(getText(R.string.fast_multi_empty))
339-
.setErrorText(getText(R.string.fast_multi_error))
340-
.setNoNetText(getText(R.string.fast_multi_network))
341-
.setTextMargin(getDimensionPixelSize(R.dimen.dp_multi_margin))
342-
.setImageWidthHeight(getDimensionPixelSize(R.dimen.dp_multi_image_size))
343-
.setEmptyImageDrawable(FastUtil.getTintDrawable(
344-
getDrawable(R.drawable.fast_img_multi_empty), getColor(R.color.colorMultiText)))
345-
.setErrorImageDrawable(FastUtil.getTintDrawable(
346-
getDrawable(R.drawable.fast_img_multi_error), getColor(R.color.colorMultiText)))
347-
.setNoNetImageDrawable(FastUtil.getTintDrawable(
348-
getDrawable(R.drawable.fast_img_multi_network), getColor(R.color.colorMultiText)));
349-
}
350-
return mMultiStatusViewBuilder;
351-
}
352-
353300
/**
354301
* 设置加载图片占位图颜色
355302
*
@@ -380,15 +327,8 @@ private int getColor(@ColorInt int color) {
380327
return getResources().getColor(color);
381328
}
382329

383-
public int getDimensionPixelSize(@DrawableRes int dimen) {
384-
return getResources().getDimensionPixelSize(dimen);
385-
}
386-
387-
public CharSequence getText(@StringRes int id) {
330+
private CharSequence getText(@StringRes int id) {
388331
return getResources().getText(id);
389332
}
390333

391-
public Drawable getDrawable(@DrawableRes int res) {
392-
return getResources().getDrawable(res);
393-
}
394334
}

0 commit comments

Comments
 (0)