|
|
@@ -2,24 +2,22 @@ package com.sheep.gamegroup.view.fragment;
|
|
|
|
|
|
import android.app.Activity;
|
|
|
import android.content.Context;
|
|
|
-import android.os.Handler;
|
|
|
-import android.os.Looper;
|
|
|
-import android.os.Message;
|
|
|
+import android.support.annotation.NonNull;
|
|
|
import android.support.design.widget.TabLayout;
|
|
|
import android.support.v4.view.ViewPager;
|
|
|
import android.support.v4.widget.NestedScrollView;
|
|
|
-import android.support.v4.widget.SwipeRefreshLayout;
|
|
|
import android.support.v7.widget.LinearLayoutManager;
|
|
|
import android.support.v7.widget.RecyclerView;
|
|
|
import android.view.View;
|
|
|
-import android.view.ViewGroup;
|
|
|
import android.widget.ImageView;
|
|
|
import android.widget.LinearLayout;
|
|
|
import android.widget.TextView;
|
|
|
|
|
|
import com.bumptech.glide.Glide;
|
|
|
import com.bumptech.glide.request.RequestOptions;
|
|
|
-import com.sheep.gamegroup.event.BigEvent;
|
|
|
+import com.scwang.smartrefresh.layout.SmartRefreshLayout;
|
|
|
+import com.scwang.smartrefresh.layout.api.RefreshLayout;
|
|
|
+import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
|
|
|
import com.sheep.gamegroup.model.entity.BaseMessage;
|
|
|
import com.sheep.gamegroup.model.entity.FindTag;
|
|
|
import com.sheep.gamegroup.model.entity.GameEntity;
|
|
|
@@ -30,6 +28,7 @@ import com.sheep.gamegroup.util.DataUtil;
|
|
|
import com.sheep.gamegroup.util.GlideImageLoader;
|
|
|
import com.sheep.gamegroup.util.Jump2View;
|
|
|
import com.sheep.gamegroup.util.ListUtil;
|
|
|
+import com.sheep.gamegroup.util.RefreshUtil;
|
|
|
import com.sheep.gamegroup.util.ViewHolder;
|
|
|
import com.sheep.gamegroup.util.ViewUtil;
|
|
|
import com.sheep.gamegroup.view.adapter.AdbCommonRecycler;
|
|
|
@@ -44,8 +43,6 @@ import com.youth.banner.listener.OnBannerListener;
|
|
|
import com.youth.banner.loader.ImageLoader;
|
|
|
|
|
|
import org.afinal.simplecache.ApiKey;
|
|
|
-import org.greenrobot.eventbus.EventBus;
|
|
|
-import org.greenrobot.eventbus.Subscribe;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
@@ -82,16 +79,11 @@ public class FgtPlayGame extends BaseFragment {
|
|
|
@BindView(R.id.viewpager_act_game_details)
|
|
|
ViewPager pager;
|
|
|
@BindView(R.id.refresh)
|
|
|
- SwipeRefreshLayout refresh;
|
|
|
+ SmartRefreshLayout refresh;
|
|
|
@BindView(R.id.scrollView)
|
|
|
NestedScrollView scrollView;
|
|
|
- @BindView(R.id.bottom_line_text)
|
|
|
- TextView bottom_line_text;
|
|
|
Unbinder unbinder;
|
|
|
|
|
|
- public static final int WHAT_UPDATE_VP_HEIGHT = 1;//刷新viewpager高度
|
|
|
- public static final int WHAT_UPDATE_BOTTOM_LINE = 3;//刷新底线(双击我回到顶部)
|
|
|
- public static final int WHAT_UPDATE_FOOT_VIEW_CALL_BACK = 4;//刷新发布任务列表的加载更多的状态回调
|
|
|
private Activity activity;
|
|
|
private List<GameEntity> everyDayPlayListData = new ArrayList<>();
|
|
|
private List<GameEntity> hotListData = new ArrayList<>();
|
|
|
@@ -103,48 +95,6 @@ public class FgtPlayGame extends BaseFragment {
|
|
|
private TitleFragmentListAdapter mAdapter;
|
|
|
private int curPosition = 0;
|
|
|
|
|
|
- Handler mHandler = new Handler(Looper.getMainLooper()){
|
|
|
- @Override
|
|
|
- public void handleMessage(Message msg) {
|
|
|
- super.handleMessage(msg);
|
|
|
- FgtPlayGameSon item;
|
|
|
- switch (msg.what) {
|
|
|
- case WHAT_UPDATE_VP_HEIGHT:
|
|
|
- item = (FgtPlayGameSon) mAdapter.getItem(curPosition);
|
|
|
- if (pager == null || item == null) {
|
|
|
- return;
|
|
|
- }
|
|
|
- int count = item.getDataCount();
|
|
|
- item.setNoFresh();
|
|
|
- ViewGroup.LayoutParams params = pager.getLayoutParams();
|
|
|
- params.height = count == 0 ? G.HEIGHT / 2 : (count * getResources().getDimensionPixelSize(R.dimen.content_padding_96) + getResources().getDimensionPixelSize(R.dimen.frg_app_details_icon));
|
|
|
- pager.setLayoutParams(params);
|
|
|
- case WHAT_UPDATE_FOOT_VIEW_CALL_BACK://发布任务列表的加载更多的回调
|
|
|
- if(msg.obj instanceof String) {
|
|
|
- String obj = (String) msg.obj;
|
|
|
- switch (obj) {
|
|
|
- case "onLoadingMore":
|
|
|
- bottom_line_text.setText("羊羊努力加载中...");
|
|
|
- break;
|
|
|
- case "onLoadMoreComplete":
|
|
|
- bottom_line_text.setText("上拉下载更多,双击我回到顶部");
|
|
|
- break;
|
|
|
- case "onSetNoMore":
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
- case WHAT_UPDATE_BOTTOM_LINE://刷新底线
|
|
|
- item = (FgtPlayGameSon) mAdapter.getItem(curPosition);
|
|
|
- if (mAdapter == null || item == null) {
|
|
|
- return;
|
|
|
- }
|
|
|
- bottom_line_text.setText(item.isNoMore() ?"我是有底线的,双击我回到顶部" : "双击我回到顶部");
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- };
|
|
|
-
|
|
|
@Override
|
|
|
public int getLayoutId() {
|
|
|
return R.layout.fgt_play_game;
|
|
|
@@ -153,7 +103,6 @@ public class FgtPlayGame extends BaseFragment {
|
|
|
@Override
|
|
|
public void onViewCreated() {
|
|
|
activity = getActivity();
|
|
|
- EventBus.getDefault().register(this);
|
|
|
|
|
|
//banner
|
|
|
LinearLayout.LayoutParams bannerLayoutParams = (LinearLayout.LayoutParams) banner.getLayoutParams();
|
|
|
@@ -211,12 +160,24 @@ public class FgtPlayGame extends BaseFragment {
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
- refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
|
|
+ refresh.setOnRefreshLoadMoreListener(new OnRefreshLoadMoreListener() {
|
|
|
+ @Override
|
|
|
+ public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
|
|
|
+ FgtPlayGameSon item = (FgtPlayGameSon) mAdapter.getItem(curPosition);
|
|
|
+ if (item == null) {
|
|
|
+ notifyDataSetChanged();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ item.loadMoreData();
|
|
|
+ notifyDataSetChanged();
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
- public void onRefresh() {
|
|
|
+ public void onRefresh(@NonNull RefreshLayout refreshLayout) {
|
|
|
initData();
|
|
|
}
|
|
|
});
|
|
|
+ RefreshUtil.newInstance().publicParameterRefresh(refresh, activity);
|
|
|
|
|
|
mAdapter = new TitleFragmentListAdapter(getChildFragmentManager());
|
|
|
|
|
|
@@ -364,7 +325,8 @@ public class FgtPlayGame extends BaseFragment {
|
|
|
});
|
|
|
}
|
|
|
private void notifyDataSetChanged() {
|
|
|
- refresh.setRefreshing(false);
|
|
|
+ refresh.finishRefresh();
|
|
|
+ refresh.finishLoadMore();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -383,7 +345,8 @@ public class FgtPlayGame extends BaseFragment {
|
|
|
int i = 0;
|
|
|
for(FindTag findTag:list){
|
|
|
FgtPlayGameSon item = FgtPlayGameSon.newInstance(findTag.getId());
|
|
|
- item.setSelected(i == 0);//默认选中第一个
|
|
|
+ item.setViewPager(pager);
|
|
|
+ item.setSmartRefreshLayout(refresh);
|
|
|
mAdapter.add(item, findTag.getName());
|
|
|
i++;
|
|
|
}
|
|
|
@@ -397,13 +360,7 @@ public class FgtPlayGame extends BaseFragment {
|
|
|
|
|
|
@Override
|
|
|
public void onPageSelected(int i) {
|
|
|
-// FIND_TAG.onEvent("find_tag_name", ListUtil.hasIndex(list, i - 1) );
|
|
|
- FgtPlayGameSon lastItem = (FgtPlayGameSon) mAdapter.getItem(curPosition);
|
|
|
curPosition = i;
|
|
|
- FgtPlayGameSon item = (FgtPlayGameSon) mAdapter.getItem(curPosition);
|
|
|
- lastItem.setSelected(false);
|
|
|
- item.setSelected(true);
|
|
|
- mHandler.sendEmptyMessage(WHAT_UPDATE_VP_HEIGHT);//重新计算viewpager高度
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -412,12 +369,12 @@ public class FgtPlayGame extends BaseFragment {
|
|
|
}
|
|
|
});
|
|
|
CommonUtil.getInstance().reflex(indicator, activity);
|
|
|
-// pager.setOffscreenPageLimit(mAdapter.getCount());
|
|
|
+ pager.setOffscreenPageLimit(list.size());
|
|
|
notifyDataSetChanged();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- @OnClick({R.id.every_day_more_tv, R.id.recent_hot_more_tv, R.id.bottom_line})
|
|
|
+ @OnClick({R.id.every_day_more_tv, R.id.recent_hot_more_tv})
|
|
|
public void onViewClicked(View view) {
|
|
|
switch (view.getId()) {
|
|
|
case R.id.every_day_more_tv:
|
|
|
@@ -426,34 +383,6 @@ public class FgtPlayGame extends BaseFragment {
|
|
|
case R.id.recent_hot_more_tv:
|
|
|
Jump2View.getInstance().goEverydayOrCurrentHotGame(activity, 1);
|
|
|
break;
|
|
|
- case R.id.bottom_line://我是有底线的,双击我回到顶部
|
|
|
- scrollView.fullScroll(NestedScrollView.FOCUS_UP);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- @Subscribe
|
|
|
- public void onEventMainThread(BigEvent event) {
|
|
|
- switch (event.getEventTypes()) {
|
|
|
- case FGT_PLAY_GAME_REFRESH_H:
|
|
|
- mHandler.sendEmptyMessage(WHAT_UPDATE_VP_HEIGHT);
|
|
|
- break;
|
|
|
- case FGT_PLAY_GAME_FOOT_VIEW_CALL_BACK:
|
|
|
- Message msg = Message.obtain();
|
|
|
- msg.what = WHAT_UPDATE_FOOT_VIEW_CALL_BACK;
|
|
|
- msg.obj = event.getData();
|
|
|
- if(msg.obj != null)
|
|
|
- mHandler.sendMessage(msg);
|
|
|
- break;
|
|
|
- case FGT_PLAY_GAME_SET_BOTTOM_LINE:
|
|
|
- mHandler.sendEmptyMessage(WHAT_UPDATE_BOTTOM_LINE);
|
|
|
- break;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onDestroy() {
|
|
|
- super.onDestroy();
|
|
|
-
|
|
|
- EventBus.getDefault().unregister(this);
|
|
|
- }
|
|
|
}
|