Skip to content

Commit 2203fb0

Browse files
committed
下拉界面的修改
1 parent 8053e39 commit 2203fb0

File tree

14 files changed

+408
-15
lines changed

14 files changed

+408
-15
lines changed

.idea/dictionaries/heartblood.xml

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/inspectionProfiles/Project_Default.xml

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/build.gradle

+3-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ android {
2020
}
2121

2222
dependencies {
23-
compile fileTree(dir: 'libs', include: ['*.jar'])
23+
compile fileTree(include: ['*.jar'], dir: 'libs')
2424
testCompile 'junit:junit:4.12'
2525
compile 'com.android.support:appcompat-v7:23.1.1'
2626
compile 'com.android.support:design:23.1.1'
@@ -32,4 +32,6 @@ dependencies {
3232
compile 'com.github.dmytrodanylyk.shadow-layout:library:1.0.3'
3333
compile 'com.kyleduo.switchbutton:library:1.4.0'
3434
compile 'com.github.ksoichiro:android-observablescrollview:1.5.1'
35+
compile 'in.srain.cube:ultra-ptr:1.0.11'
36+
compile 'com.android.support:percent:23.1.1'
3537
}

app/src/main/java/com/heartblood/nucdemo/NewsActivity.java

+46-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.heartblood.nucdemo;
22

3+
import android.os.Build;
34
import android.os.Bundle;
45
import android.support.design.widget.FloatingActionButton;
56
import android.support.design.widget.Snackbar;
@@ -9,30 +10,71 @@
910
import android.support.v7.widget.Toolbar;
1011
import android.util.Log;
1112
import android.view.View;
13+
import android.view.animation.Animation;
14+
15+
import com.facebook.drawee.backends.pipeline.Fresco;
1216
import com.heartblood.nucdemo.adapter.NewsListAdapter;
1317
import com.heartblood.nucdemo.common.ui.BaseActivity;
18+
import com.heartblood.nucdemo.common.ui.MountainScenceView;
1419
import com.loopj.android.http.AsyncHttpClient;
1520
import com.loopj.android.http.JsonHttpResponseHandler;
21+
1622
import org.json.JSONArray;
1723
import org.json.JSONObject;
1824

1925
import cz.msebera.android.httpclient.Header;
26+
import in.srain.cube.views.ptr.PtrFrameLayout;
27+
import in.srain.cube.views.ptr.PtrHandler;
28+
import in.srain.cube.views.ptr.header.StoreHouseHeader;
2029

2130
public class NewsActivity extends BaseActivity {
2231

2332
private RecyclerView mRecyclerView;
2433
private NewsListAdapter mNewsListAdapter;
2534
private JSONArray mJsonData;
35+
private PtrFrameLayout mPtrFrameLayout;
36+
private MountainScenceView mMountainScenceView;
2637
@Override
2738
protected void onCreate(Bundle savedInstanceState) {
2839
super.onCreate(savedInstanceState);
40+
Fresco.initialize(this);
2941
setContentView(R.layout.activity_news);
3042
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
3143
setSupportActionBar(toolbar);
32-
44+
mMountainScenceView = (MountainScenceView) findViewById(R.id.mountain_scence_view);
3345
mRecyclerView = (RecyclerView) findViewById(R.id.news_list);
3446
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
3547
getNewsJson("http://119.29.58.43/api/getSfBlog/getPage=1", this);
48+
mPtrFrameLayout = (PtrFrameLayout) findViewById(R.id.news_card_ptr_frame);
49+
mPtrFrameLayout.setPtrHandler(new PtrHandler() {
50+
public int getScrollHeight() {
51+
View c = mRecyclerView.getChildAt(0);
52+
if (c == null) {
53+
return 0;
54+
}
55+
int top = c.getTop();
56+
return top;
57+
}
58+
59+
@Override
60+
public boolean checkCanDoRefresh(PtrFrameLayout frame, View content, View header) {
61+
62+
mMountainScenceView.updateFactor(content.getTop());
63+
if (getScrollHeight() >= 0)
64+
return true;
65+
return false;
66+
}
67+
68+
@Override
69+
public void onRefreshBegin(PtrFrameLayout frame) {
70+
frame.postDelayed(new Runnable() {
71+
@Override
72+
public void run() {
73+
mPtrFrameLayout.refreshComplete();
74+
}
75+
}, 1800);
76+
}
77+
});
3678
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
3779
fab.setOnClickListener(new View.OnClickListener() {
3880
@Override
@@ -52,12 +94,14 @@ public void onSuccess(int statusCode, Header[] headers, JSONArray response) {
5294
mJsonData = response;
5395
mRecyclerView.setAdapter(mNewsListAdapter = new NewsListAdapter(newsActivity, mJsonData));
5496
}
97+
5598
@Override
5699
public void onFailure(int statusCode, Header[] headers, Throwable throwable, JSONObject errorResponse) {
57100
// TODO: 16/5/9 获取json失败
58101
super.onFailure(statusCode, headers, throwable, errorResponse);
59-
Log.e("测试","报错报错啦");
102+
Log.e("测试", "报错报错啦");
60103
}
61104
});
62105
}
106+
63107
}

0 commit comments

Comments
 (0)