先看看XML布局文件,下拉刷新和上拉加载哪个在外层并没有什么影响。最里面嵌套了一个RecycleView。
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/gridswipreRefresh"
android:layout_below="@+id/grid_view"
style="?android:attr/progressBarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<com.scwang.smartrefresh.layout.SmartRefreshLayout
android:id="@+id/gridrefreshLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:srlAccentColor="#000000"
app:srlEnableHeaderTranslationContent="false"
app:srlEnablePreviewInEditMode="true"
app:srlEnableRefresh="false"
app:srlPrimaryColor="#000000"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<android.support.v7.widget.RecyclerView
android:id="@+id/gs_recyclerview"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v7.widget.RecyclerView>
<com.scwang.smartrefresh.layout.footer.ClassicsFooter
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
</android.support.v4.widget.SwipeRefreshLayout>
我们把swipeRefresh.setRefreshing(true)放在swipeRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener()这个函数中,而不是和mRefreshLayout.setNoMoreData(false)一样放在search_sendRequestWithOkHttp()里边,是为了避免上拉加载的时候又同时刷新,最后记得刷新完之后要把刷新功能关掉,即记得调用swipeRefresh.setRefreshing(false)函数。废话不多说,上代码。
private SwipeRefreshLayout swipeRefresh;
private RefreshLayout mRefreshLayout;
private RecyclerView recyclerView;
recyclerView = (RecyclerView) findViewById(R.id.gs_recyclerview);
swipeRefresh = (SwipeRefreshLayout) findViewById(R.id.gridswipreRefresh);
mRefreshLayout = findViewById(R.id.gridrefreshLayout);
swipeRefresh.setColorSchemeResources(R.color.colorPrimary);
swipeRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
swipeRefresh.setRefreshing(true);
page = 1;
if (svText.trim()!=""){
if(((pvText_grid!="选择网格")) && ((pvText_form!="主体业态"))){
search_sendRequestWithOkHttp(
"&enterpriseName=%25"+svText+"%25&",
"&supervisionorg=%25"+pvText_grid+"%25",
"&mainbusinessform=%25"+pvText_form+"%25");
}else if (((pvText_grid!="选择网格")) && ((pvText_form=="主体业态"))){
search_sendRequestWithOkHttp(
"&enterpriseName=%25"+svText+"%25",
"&supervisionorg=%25"+pvText_grid+"%25",
"");
}else if (((pvText_grid=="选择网格")) && ((pvText_form!="主体业态"))) {
search_sendRequestWithOkHttp(
"&enterpriseName=%25"+svText+"%25",
"",
"&mainbusinessform=%25"+pvText_form+"%25");
}else if (((pvText_grid=="选择网格")) && ((pvText_form=="主体业态"))) {
search_sendRequestWithOkHttp(
"&enterpriseName=%25"+svText+"%25",
"",
"");
}
}else {
svText = "";
if(((pvText_grid!="选择网格")) && ((pvText_form!="主体业态"))){
search_sendRequestWithOkHttp(
"",
"&supervisionorg=%25"+pvText_grid+"%25",
"&mainbusinessform=%25"+pvText_form+"%25");
}else if (((pvText_grid!="选择网格")) && ((pvText_form=="主体业态"))){
search_sendRequestWithOkHttp(
"",
"&supervisionorg=%25"+pvText_grid+"%25",
"");
}else if (((pvText_grid=="选择网格")) && ((pvText_form!="主体业态"))) {
search_sendRequestWithOkHttp(
"",
"",
"&mainbusinessform=%25"+pvText_form+"%25");
}else if (((pvText_grid=="选择网格")) && ((pvText_form=="主体业态"))) {
search_sendRequestWithOkHttp(
"",
"",
"");
}
}
}
});
mRefreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
@Override
public void onLoadMore(RefreshLayout refreshlayout) {
++page;
Log.i("page",String.valueOf(page));
if (pvText_grid == "选择网格" && pvOption1 == 0) {
getFormCountRequestWithOkHttp("");
}else {
getFormCountRequestWithOkHttp(pvText_grid);
}
if (svText.trim()!=""){
if (((pvOption1!=0 || pvText_grid!="选择网格")) && ((pvOption2==0 || pvText_form=="主体业态"))){
if (page < (main/20+1)) {
search_sendRequestWithOkHttp(
"&enterpriseName=%25"+svText+"%25",
"&supervisionorg=%25"+pvText_grid+"%25",
"");
}else {
mRefreshLayout.finishLoadMoreWithNoMoreData();
}
}else if (((pvOption1!=0 || pvText_grid!="选择网格")) && ((pvText_form=="食品销售"))){
if (page < (food/20+1)) {
search_sendRequestWithOkHttp(
"&enterpriseName=%25"+svText+"%25",
"&supervisionorg=%25"+pvText_grid+"%25",
"");
}else {
mRefreshLayout.finishLoadMoreWithNoMoreData();
}
}else if (((pvOption1!=0 || pvText_grid!="选择网格")) && ((pvText_form=="餐饮服务"))){
if (page < (serve/20+1)) {
search_sendRequestWithOkHttp(
"&enterpriseName=%25"+svText+"%25",
"&supervisionorg=%25"+pvText_grid+"%25",
"");
}else {
mRefreshLayout.finishLoadMoreWithNoMoreData();
}
}else if (((pvOption1!=0 || pvText_grid!="选择网格")) && ((pvText_form=="单位食堂"))){
if (page < (canteen/20+1)) {
search_sendRequestWithOkHttp(
"&enterpriseName=%25"+svText+"%25",
"&supervisionorg=%25"+pvText_grid+"%25",
"");
}else {
mRefreshLayout.finishLoadMoreWithNoMoreData();
}
}else if (((pvText_grid=="选择网格")) && ((pvText_form=="单位食堂"))) {
if (page < (canteen/20+1)) {
search_sendRequestWithOkHttp(
"&enterpriseName=%25"+svText+"%25",
"",
"&mainbusinessform=%25"+pvText_form+"%25");
}else {
mRefreshLayout.finishLoadMoreWithNoMoreData();
}
}else if (((pvText_grid=="选择网格")) && ((pvText_form=="餐饮服务"))) {
if (page < (serve/20+1)) {
search_sendRequestWithOkHttp(
"&enterpriseName=%25"+svText+"%25",
"",
"&mainbusinessform=%25"+pvText_form+"%25");
}else {
mRefreshLayout.finishLoadMoreWithNoMoreData();
}
}else if (((pvText_grid=="选择网格")) && ((pvText_form=="食品销售"))) {
if (page < (food/20+1)) {
search_sendRequestWithOkHttp(
"&enterpriseName=%25"+svText+"%25",
"",
"&mainbusinessform=%25"+pvText_form+"%25");
}else {
mRefreshLayout.finishLoadMoreWithNoMoreData();
}
}else if (((pvText_grid=="选择网格")) && ((pvOption2==0 || pvText_form=="主体业态"))) {
if (page < (main/20+1)) {
search_sendRequestWithOkHttp(
"&enterpriseName=%25"+svText+"%25",
"",
"");
}else {
mRefreshLayout.finishLoadMoreWithNoMoreData();
}
}
}else {
svText = "";
if (((pvOption1!=0 || pvText_grid!="选择网格")) && ((pvOption2==0 || pvText_form=="主体业态"))){
if (page < (main/20+1)) {
search_sendRequestWithOkHttp(
"",
"&supervisionorg=%25"+pvText_grid+"%25",
"");
}else {
mRefreshLayout.finishLoadMoreWithNoMoreData();
}
}else if (((pvOption1!=0 || pvText_grid!="选择网格")) && ((pvText_form=="食品销售"))){
if (page < (food/20+1)) {
search_sendRequestWithOkHttp(
"",
"&supervisionorg=%25"+pvText_grid+"%25",
"&mainbusinessform=%25"+pvText_form+"%25");
}else {
mRefreshLayout.finishLoadMoreWithNoMoreData();
}
}else if (((pvOption1!=0 || pvText_grid!="选择网格")) && ((pvText_form=="餐饮服务"))){
if (page < (serve/20+1)) {
search_sendRequestWithOkHttp(
"",
"&supervisionorg=%25"+pvText_grid+"%25",
"&mainbusinessform=%25"+pvText_form+"%25");
}else {
mRefreshLayout.finishLoadMoreWithNoMoreData();
}
}else if (((pvOption1!=0 || pvText_grid!="选择网格")) && ((pvText_form=="单位食堂"))){
if (page < (canteen/20+1)) {
search_sendRequestWithOkHttp(
"",
"&supervisionorg=%25"+pvText_grid+"%25",
"&mainbusinessform=%25"+pvText_form+"%25");
}else {
mRefreshLayout.finishLoadMoreWithNoMoreData();
}
}else if (((pvText_grid=="选择网格")) && ((pvText_form=="单位食堂"))) {
if (page < (canteen/20+1)) {
search_sendRequestWithOkHttp(
"",
"",
"&mainbusinessform=%25"+pvText_form+"%25");
}else {
mRefreshLayout.finishLoadMoreWithNoMoreData();
}
}else if (((pvText_grid=="选择网格")) && ((pvText_form=="餐饮服务"))) {
if (page < (serve/20+1)) {
search_sendRequestWithOkHttp(
"",
"",
"&mainbusinessform=%25"+pvText_form+"%25");
}else {
mRefreshLayout.finishLoadMoreWithNoMoreData();
}
}else if (((pvText_grid=="选择网格")) && ((pvText_form=="食品销售"))) {
if (page < (food/20+1)) {
search_sendRequestWithOkHttp(
"",
"",
"&mainbusinessform=%25"+pvText_form+"%25");
}else {
mRefreshLayout.finishLoadMoreWithNoMoreData();
}
}else if (((pvText_grid=="选择网格")) && ((pvOption2==0 || pvText_form=="主体业态"))) {
if (page < (main/20+1)) {
search_sendRequestWithOkHttp(
"",
"",
"");
}else {
mRefreshLayout.finishLoadMoreWithNoMoreData();
}
}
}
}
});
public void search_sendRequestWithOkHttp(String enterpriseName, String supervisionorg, String mainbusinessform) {
mRefreshLayout.setNoMoreData(false);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.addItemDecoration(new DividerItemDecoration(GridSupervisionActivity.this, DividerItemDecoration.VERTICAL_LIST));
url= "grid/findByExample?page=" + page + "&pageSize=" + pageSize + enterpriseName + supervisionorg + mainbusinessform;
Log.i("urll",url);
HttpUtil.sendOkHttpRequest(url,new okhttp3.Callback(){
@Override
public void onResponse(Call call, Response response) throws IOException {
responseData = response.body().string();
Log.i("search_responseData",responseData);
parseJSONWithGSON(responseData);
//handler.post(gridrunnableUi);
}
@Override
public void onFailure(Call call,IOException e){
String responseData = "网络错误";
showResponse(responseData);
}
});
gridSupervisionAdapter = new GridAdapter(gridlistDataItemArrayList);
recyclerView.setAdapter(gridSupervisionAdapter);
Log.i("recyclerView-----------",".......................................");
}
public void parseJSONWithGSON(String jsonData) {
Gson gson = new GsonBuilder().create();
Gridlist gridlist= gson.fromJson(jsonData,Gridlist.class);
ArrayList<Gridlist> gridlistData = gridlist.getData();
//Log.i("search_responseData",responseData);
if (gridlistData != null) {
if (page == 1) {
gridlistDataItemArrayList.clear();
}
gridlistDataItemArrayList.addAll(gridlistData);
showResponse("数据加载成功");
Log.i("search_responseData",".......................................");
}else {
showResponse("数据加载失败");
}
}
private void showResponse(final String response) {
runOnUiThread(new Runnable() {
@Override
public void run() {
if (response.equals("数据加载成功")||response.equals("无结果")){
gridSupervisionAdapter.notifyDataSetChanged();
}else {
ToastUtil.showToast(GridSupervisionActivity.this,response);
}
swipeRefresh.setRefreshing(false);
mRefreshLayout.finishLoadMore();
// 在这里进行UI操作,将结果显示到界面上
}
});
}