Skip to content

Commit be2a4df

Browse files
committed
修改model
1 parent 3da7e70 commit be2a4df

File tree

7 files changed

+107
-66
lines changed

7 files changed

+107
-66
lines changed

ViewLibrary/src/main/java/bytetrade/io/zyhang/viewlibrary/RefreshLoadLayout.java

Lines changed: 43 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,8 @@ public class RefreshLoadLayout extends ViewGroup {
6969
//加载状态
7070
private boolean mIsLoading = false;
7171

72-
private int mDamp = 4;
72+
//默认阻力
73+
private int mDamp = 2;
7374

7475
//是否还有更多数据
7576
private boolean isMore = true;
@@ -120,14 +121,8 @@ private void initEmptyLayout() {
120121
addView(mEmptyLayout);
121122
}
122123

123-
/***************************RefreshLoadLayout可用方法*************************/
124124

125-
private void setLayoutParams(LinearLayout layout, int height) {
126-
LayoutParams layoutParams = new LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
127-
layout.setGravity(Gravity.CENTER);
128-
layoutParams.height = height;
129-
layout.setLayoutParams(layoutParams);
130-
}
125+
/***************************RefreshLoadLayout可用方法*************************/
131126

132127
public void setHeader(View Header) {
133128
mHeader = Header;
@@ -276,35 +271,6 @@ public void isMore(boolean isMore) {
276271
}
277272

278273

279-
private void setFooterNoData() {
280-
if (mFooterNoData == null) {
281-
mFooterNoData = LayoutInflater.from(mContext).inflate(R.layout.layout_no_data, null);
282-
}
283-
mFooterLayout.removeAllViews();
284-
mFooterLayout.addView(mFooterNoData);
285-
286-
//获取尾部高度
287-
mFooterLayout.post(new Runnable() {
288-
@Override
289-
public void run() {
290-
if (mFooter.getHeight() > FOOTER_NO_DATA_DEFAULT_HEIGHT) {
291-
mFooterHeight = mFooter.getHeight();
292-
} else {
293-
mFooterHeight = FOOTER_NO_DATA_DEFAULT_HEIGHT;
294-
}
295-
296-
setLayoutParams(mFooterLayout, mFooterHeight);
297-
298-
//当获取到尾部高度的时候,如果正处于上拉刷新状态,应该把尾部打开。
299-
if (mIsLoadMore) {
300-
scroll(mFooterHeight);
301-
}
302-
invalidate();
303-
}
304-
});
305-
306-
}
307-
308274
//设置头部监听器
309275
public void addOnHeaderStateListener(OnHeaderStateListener listener) {
310276
mHeaderStateListener = listener;
@@ -429,6 +395,45 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) {
429395
}
430396
}
431397

398+
/***************************私有方法*************************/
399+
400+
401+
private void setLayoutParams(LinearLayout layout, int height) {
402+
LayoutParams layoutParams = new LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
403+
layout.setGravity(Gravity.CENTER);
404+
layoutParams.height = height;
405+
layout.setLayoutParams(layoutParams);
406+
}
407+
408+
private void setFooterNoData() {
409+
if (mFooterNoData == null) {
410+
mFooterNoData = LayoutInflater.from(mContext).inflate(R.layout.layout_no_data, mFooterLayout);
411+
} else {
412+
mFooterLayout.removeAllViews();
413+
mFooterLayout.addView(mFooterNoData);
414+
}
415+
//获取尾部高度
416+
mFooterLayout.post(new Runnable() {
417+
@Override
418+
public void run() {
419+
if (mFooter.getHeight() > FOOTER_NO_DATA_DEFAULT_HEIGHT) {
420+
mFooterHeight = mFooter.getHeight();
421+
} else {
422+
mFooterHeight = FOOTER_NO_DATA_DEFAULT_HEIGHT;
423+
}
424+
425+
setLayoutParams(mFooterLayout, mFooterHeight);
426+
427+
//当获取到尾部高度的时候,如果正处于上拉刷新状态,应该把尾部打开。
428+
if (mIsLoadMore) {
429+
scroll(mFooterHeight);
430+
}
431+
invalidate();
432+
}
433+
});
434+
435+
}
436+
432437
/**
433438
* 触发下拉刷新
434439
*/
@@ -577,6 +582,7 @@ public boolean onTouchEvent(MotionEvent event) {
577582

578583
int mY = 0;
579584

585+
580586
@Override
581587
public boolean onInterceptTouchEvent(MotionEvent ev) {
582588

ViewLibrary/src/main/res/layout/layout_empty.xml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,13 @@
33
android:layout_width="match_parent"
44
android:layout_height="match_parent">
55

6-
<ImageView
6+
<TextView
77
android:layout_width="100dp"
8-
android:layout_height="100dp"
9-
android:background="#cc1231" />
8+
android:layout_height="wrap_content"
9+
android:background="#cc1231"
10+
android:gravity="center"
11+
android:text="没有数据"
12+
android:textColor="@android:color/white"
13+
android:textSize="16sp" />
1014

1115
</RelativeLayout>

app/src/main/java/bytetrade/io/zyhang/refreshloadview/RecyclerViewModelActivity.java

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import android.view.View;
1313
import android.view.ViewGroup;
1414
import android.view.animation.RotateAnimation;
15+
import android.widget.ImageView;
1516
import android.widget.TextView;
1617

1718
import java.util.ArrayList;
@@ -31,6 +32,8 @@ public class RecyclerViewModelActivity extends AppCompatActivity {
3132
int mLoadTime = 0;
3233
SimpleAdapter mSimpleAdapter;
3334

35+
TextView mTvHeader, mTvFooter;
36+
ImageView mImgHeader, mImgFooter;
3437

3538
@Override
3639
protected void onCreate(@Nullable Bundle savedInstanceState) {
@@ -43,9 +46,18 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
4346
//设置滑动阻力
4447
mRefreshLayout.setDamp(2);
4548
//可选设置底部无数据时布局,也有默认布局
46-
//mRefreshLayout.setFooterNoData(getLayoutInflater().inflate(R.layout.layout_footer_no_data_test, null));
47-
mRefreshLayout.setHeader(getLayoutInflater().inflate(R.layout.layout_header, null));
48-
mRefreshLayout.setFooter(getLayoutInflater().inflate(R.layout.layout_footer, null));
49+
mRefreshLayout.setFooterNoData(getLayoutInflater().inflate(R.layout.layout_no_data, null));
50+
View header = getLayoutInflater().inflate(R.layout.layout_header, null);
51+
View footer = getLayoutInflater().inflate(R.layout.layout_footer, null);
52+
53+
mImgHeader = header.findViewById(R.id.img_header_status);
54+
mImgFooter = footer.findViewById(R.id.img_footer_status);
55+
56+
mTvHeader = header.findViewById(R.id.tv_header_status);
57+
mTvFooter = footer.findViewById(R.id.tv_footer_status);
58+
59+
mRefreshLayout.setHeader(header);
60+
mRefreshLayout.setFooter(footer);
4961

5062
mRefreshLayout.addOnHeaderStateListener(new RefreshLoadLayout.OnHeaderStateListener() {
5163
@Override
@@ -56,9 +68,12 @@ public void onScrollChange(View Header, int scrollOffset, int scrollRatio) {
5668
@Override
5769
public void onRefresh(View Header) {
5870
//通过接口获得Footer开启动画
59-
RotateAnimation anim = new RotateAnimation(0f, 720f, Header.getWidth() / 2, Header.getHeight() / 2);
71+
72+
RotateAnimation anim = new RotateAnimation(0f, 720f, mImgHeader.getWidth() / 2, mImgHeader.getHeight() / 2);
6073
anim.setDuration(3000);
61-
Header.startAnimation(anim);
74+
mImgHeader.startAnimation(anim);
75+
76+
mTvHeader.setText("下拉刷新中···");
6277

6378
//模拟网络请求延时
6479
new Handler().postDelayed(new Runnable() {
@@ -80,7 +95,7 @@ public void run() {
8095

8196
@Override
8297
public void onFinished(View Header) {
83-
98+
mTvHeader.setText("下拉刷新");
8499
}
85100

86101

@@ -93,12 +108,14 @@ public void onScrollChange(View Footer, int scrollOffset, int scrollRatio) {
93108
}
94109

95110
@Override
96-
public void onLoadMore(final View Footer) {
111+
public void onLoadMore(View Footer) {
97112
if (mLoadTime < 2) {
98113
//通过接口获得Footer开启动画
99-
RotateAnimation anim = new RotateAnimation(0f, 720f, Footer.getWidth() / 2, Footer.getHeight() / 2);
114+
RotateAnimation anim = new RotateAnimation(0f, 720f, mImgFooter.getWidth() / 2, mImgFooter.getHeight() / 2);
100115
anim.setDuration(2000);
101-
Footer.startAnimation(anim);
116+
mImgFooter.startAnimation(anim);
117+
118+
mTvFooter.setText("上拉加载中···");
102119

103120
new Handler().postDelayed(new Runnable() {
104121
@Override
@@ -125,6 +142,7 @@ public void run() {
125142

126143
@Override
127144
public void onFinished(View Footer) {
145+
mTvFooter.setText("上拉加载更多");
128146
}
129147

130148
@Override

app/src/main/java/bytetrade/io/zyhang/refreshloadview/WebViewActivity.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,4 +97,10 @@ public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError e
9797

9898
});
9999
}
100+
101+
@Override
102+
protected void onDestroy() {
103+
super.onDestroy();
104+
mRll.removeOnHeaderStateListener();
105+
}
100106
}

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

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,22 @@
22
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
33
android:layout_width="match_parent"
44
android:layout_height="match_parent"
5-
android:orientation="vertical">
5+
android:orientation="horizontal">
66

77
<ImageView
8-
android:layout_width="match_parent"
8+
android:id="@+id/img_footer_status"
9+
android:layout_width="wrap_content"
910
android:layout_height="60dp"
11+
android:layout_margin="10dp"
1012
android:src="@mipmap/ic_launcher" />
1113

14+
<TextView
15+
android:layout_gravity="center_vertical"
16+
android:id="@+id/tv_footer_status"
17+
android:layout_width="120dp"
18+
android:gravity="center"
19+
android:layout_height="wrap_content"
20+
android:text="状态" />
21+
1222

1323
</LinearLayout>

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

Lines changed: 0 additions & 13 deletions
This file was deleted.

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

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,22 @@
22
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
33
android:layout_width="match_parent"
44
android:layout_height="match_parent"
5-
android:orientation="vertical">
5+
android:orientation="horizontal">
66

77
<ImageView
8-
android:layout_width="match_parent"
8+
android:id="@+id/img_header_status"
9+
android:layout_width="wrap_content"
910
android:layout_height="100dp"
11+
android:layout_margin="10dp"
1012
android:src="@mipmap/ic_launcher" />
1113

14+
<TextView
15+
android:id="@+id/tv_header_status"
16+
android:layout_width="120dp"
17+
android:layout_height="wrap_content"
18+
android:layout_gravity="center_vertical"
19+
android:gravity="center"
20+
android:text="状态" />
21+
1222

1323
</LinearLayout>

0 commit comments

Comments
 (0)