Skip to content
This repository was archived by the owner on Mar 9, 2021. It is now read-only.

Commit 953a78b

Browse files
committed
add OnInflateListener
1 parent de4c1d3 commit 953a78b

File tree

4 files changed

+57
-18
lines changed

4 files changed

+57
-18
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ repositories {
1212
maven { url "https://jitpack.io" }
1313
}
1414
dependencies {
15-
compile 'com.github.czy1121:loadinglayout:1.0.0'
15+
compile 'com.github.czy1121:loadinglayout:1.0.1'
1616
}
1717
```
1818

@@ -33,7 +33,7 @@ dependencies {
3333
</style>
3434
```
3535

36-
**在布局中使用**
36+
**用法一:在布局中使用**
3737

3838
``` xml
3939
<ezy.ui.layout.LoadingLayout
@@ -51,7 +51,7 @@ dependencies {
5151

5252
```
5353

54-
**包裹并替换内容元素**
54+
**用法二:包裹并替换内容元素**
5555

5656
``` java
5757
@Override

app/app.iml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -66,14 +66,6 @@
6666
<sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
6767
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
6868
<sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
69-
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
70-
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
71-
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
72-
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
73-
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
74-
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
75-
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
76-
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
7769
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
7870
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
7971
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
@@ -82,6 +74,14 @@
8274
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
8375
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
8476
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
77+
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
78+
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
79+
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
80+
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
81+
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
82+
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
83+
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
84+
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
8585
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
8686
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
8787
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />

library/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apply plugin: 'com.android.library'
22
apply plugin: 'com.github.dcendents.android-maven'
33

44
group='com.github.czy1121'
5-
version='1.0.0'
5+
version='1.0.1'
66
archivesBaseName='loadinglayout'
77

88
android {

library/src/main/java/ezy/ui/layout/LoadingLayout.java

Lines changed: 45 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import android.support.annotation.DrawableRes;
2525
import android.support.annotation.LayoutRes;
2626
import android.util.AttributeSet;
27-
import android.util.Log;
2827
import android.util.TypedValue;
2928
import android.view.LayoutInflater;
3029
import android.view.View;
@@ -40,6 +39,9 @@
4039

4140

4241
public class LoadingLayout extends FrameLayout {
42+
public interface OnInflateListener {
43+
void onInflate(View inflated);
44+
}
4345

4446
public static LoadingLayout wrap(Activity activity) {
4547
return wrap(((ViewGroup)activity.findViewById(android.R.id.content)).getChildAt(0));
@@ -81,6 +83,9 @@ public void onClick(View v) {
8183
};
8284
View.OnClickListener mRetryListener;
8385

86+
OnInflateListener mOnEmptyInflateListener;
87+
OnInflateListener mOnErrorInflateListener;
88+
8489
int mTextColor, mTextSize;
8590
int mButtonTextColor, mButtonTextSize;
8691
Drawable mButtonBackground;
@@ -131,7 +136,6 @@ int dp2px(float dp) {
131136
LayoutInflater mInflater;
132137
@Override
133138
protected void onFinishInflate() {
134-
Log.e("ezy", "onFinishInflate");
135139
super.onFinishInflate();
136140
if (getChildCount() == 0) {
137141
return;
@@ -163,10 +167,17 @@ public LoadingLayout setEmpty(@LayoutRes int id) {
163167
}
164168
return this;
165169
}
166-
public LoadingLayout setError(@LayoutRes int id) {
167-
if (mErrorResId != id) {
168-
remove(mErrorResId);
169-
mErrorResId = id;
170+
public LoadingLayout setOnEmptyInflateListener(OnInflateListener listener) {
171+
mOnEmptyInflateListener = listener;
172+
if (mOnEmptyInflateListener != null && mLayouts.containsKey(mEmptyResId)) {
173+
listener.onInflate(mLayouts.get(mEmptyResId));
174+
}
175+
return this;
176+
}
177+
public LoadingLayout setOnErrorInflateListener(OnInflateListener listener) {
178+
mOnErrorInflateListener = listener;
179+
if (mOnErrorInflateListener != null && mLayouts.containsKey(mErrorResId)) {
180+
listener.onInflate(mLayouts.get(mErrorResId));
170181
}
171182
return this;
172183
}
@@ -203,6 +214,28 @@ public LoadingLayout setRetryListener(OnClickListener listener) {
203214
return this;
204215
}
205216

217+
218+
// public LoadingLayout setTextColor(@ColorInt int color) {
219+
// mTextColor = color;
220+
// return this;
221+
// }
222+
// public LoadingLayout setTextSize(@ColorInt int dp) {
223+
// mTextColor = dp2px(dp);
224+
// return this;
225+
// }
226+
// public LoadingLayout setButtonTextColor(@ColorInt int color) {
227+
// mButtonTextColor = color;
228+
// return this;
229+
// }
230+
// public LoadingLayout setButtonTextSize(@ColorInt int dp) {
231+
// mButtonTextColor = dp2px(dp);
232+
// return this;
233+
// }
234+
// public LoadingLayout setButtonBackground(Drawable drawable) {
235+
// mButtonBackground = drawable;
236+
// return this;
237+
// }
238+
206239
public void showLoading() {
207240
show(mLoadingResId);
208241
}
@@ -253,6 +286,9 @@ private View layout(int layoutId) {
253286
view.setTextColor(mTextColor);
254287
view.setTextSize(TypedValue.COMPLEX_UNIT_PX, mTextSize);
255288
}
289+
if (mOnEmptyInflateListener != null) {
290+
mOnEmptyInflateListener.onInflate(layout);
291+
}
256292
} else if (layoutId == mErrorResId) {
257293
ImageView img = (ImageView) layout.findViewById(R.id.error_image);
258294
if (img != null) {
@@ -272,6 +308,9 @@ private View layout(int layoutId) {
272308
btn.setBackground(mButtonBackground);
273309
btn.setOnClickListener(mRetryButtonClickListener);
274310
}
311+
if (mOnErrorInflateListener != null) {
312+
mOnErrorInflateListener.onInflate(layout);
313+
}
275314
}
276315
return layout;
277316
}

0 commit comments

Comments
 (0)