总开服表 完成下个节点

This commit is contained in:
kehaoyuan
2018-06-01 19:20:56 +08:00
parent e1dcd72a79
commit 06734d6274
9 changed files with 145 additions and 7 deletions

View File

@ -146,6 +146,8 @@ public class KaiFuFragment extends BaseFragment {
}
private void setTabbarPosition(int index) {
if (getParentFragment() instanceof KaiFuWrapperFragment)
((KaiFuWrapperFragment) getParentFragment()).pageChange(index);
switch (index) {
case 0:
mKaifuTabbarToday.setChecked(true);

View File

@ -379,10 +379,6 @@ public class KaiFuVpAdapter extends BaseRecyclerAdapter {
return mIsRemove;
}
public int getDataListCount() {
return mDataCount;
}
public List<GameEntity> getDataList() {
return mEntityList;
}

View File

@ -5,7 +5,9 @@ import android.support.annotation.Nullable;
import android.support.v4.view.ViewPager;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.LinearSmoothScroller;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
@ -22,6 +24,7 @@ import com.gh.gamecenter.R;
import com.gh.gamecenter.entity.GameEntity;
import com.gh.gamecenter.entity.KaiFuCalendarEntity;
import com.gh.gamecenter.eventbus.EBDownloadStatus;
import com.gh.gamecenter.eventbus.EBTypeChange;
import com.lightgame.download.DataWatcher;
import com.lightgame.download.DownloadEntity;
@ -61,6 +64,7 @@ public class KaiFuVpFragment extends BaseFragment {
private LinearLayoutManager mLayoutManager;
private RelativeLayout.LayoutParams mLlparams;
private RecyclerView.SmoothScroller mSmoothScroller;
private String mGameId;
private String mDay;
@ -143,9 +147,11 @@ public class KaiFuVpFragment extends BaseFragment {
KaiFuCalendarEntity serverEntity = timeGameEntity.getServerEntity();
if (serverEntity != null) {
mKaifuItemTimeTv.setText(dateFm.format(serverEntity.getTime() * 1000));
mKaifuItemTimeTv.setTag(serverEntity.getTime());
}
} else {
mKaifuItemTimeTv.setText(dateFm.format(timeHint * 1000));
mKaifuItemTimeTv.setTag(timeHint);
}
// 悬挂界面移动
@ -165,6 +171,12 @@ public class KaiFuVpFragment extends BaseFragment {
}
});
mSmoothScroller = new LinearSmoothScroller(getContext()) {
@Override
protected int getVerticalSnapPreference() {
return LinearSmoothScroller.SNAP_TO_START;
}
};
}
@Override
@ -270,4 +282,42 @@ public class KaiFuVpFragment extends BaseFragment {
mLoading.setVisibility(View.GONE);
}
private int getNextTimePosition() {
Object tag = mKaifuItemTimeTv.getTag();
if (tag instanceof Long) {
List<GameEntity> dataList = mAdapter.getDataList();
boolean b = false;
for (int i = 0; i < dataList.size(); i++) {
GameEntity gameEntity = dataList.get(i); // 注意:列表位置和mEntityList一一对应
if (b && gameEntity.getKaifuTimeHint() != null) {
return i;
}
if (tag.equals(gameEntity.getKaifuTimeHint())) {
b = true;
}
}
return -1;
}
return -1;
}
// 滑动命令
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEventMainThread(EBTypeChange status) {
if (getUserVisibleHint() && (status.getPosition() == KaiFuWrapperFragment.CUR_ALL_KAIFU && TextUtils.isEmpty(mGameId)
|| status.getPosition() == KaiFuWrapperFragment.CUR_GAME_KAIFU && !TextUtils.isEmpty(mGameId))) {
String type = status.getType();
if (KaiFuWrapperFragment.SKIP_NEXT_TIME.equals(type)) {
int position = getNextTimePosition();
if (position != -1) {
mSmoothScroller.setTargetPosition(position);
mLayoutManager.startSmoothScroll(mSmoothScroller);
}
} else if (KaiFuWrapperFragment.SKIP_CUR_TIME.equals(type)) {
}
}
}
}

View File

@ -4,16 +4,22 @@ import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.FragmentTransaction;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import com.gh.common.util.EntranceUtils;
import com.gh.gamecenter.R;
import com.gh.gamecenter.eventbus.EBKaiFuReset;
import com.gh.gamecenter.eventbus.EBTypeChange;
import com.gh.gamecenter.normal.NormalFragment;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import butterknife.BindView;
import butterknife.OnClick;
/**
* Created by CsHeng on 14/12/2017.
* <p>
@ -24,10 +30,21 @@ public class KaiFuWrapperFragment extends NormalFragment {
public static final String SINGLE_GAME_KAIFU = "SINGLE_GAME_KAIFU";
public static final String ALL_GAME_KAIFU = "ALL_GAME_KAIFU";
public static final String SKIP_CUR_TIME = "SKIP_CUR_TIME";
public static final String SKIP_NEXT_TIME = "SKIP_NEXT_TIME";
public static final String SKIP_LIST_TOP = "SKIP_LIST_TOP";
public static final int CUR_GAME_KAIFU = 1;
public static final int CUR_ALL_KAIFU = -1;
private MenuItem mResetMenuItem;
private KaiFuFragment mKaiFuFragment;
private KaiFuFragment mGameKaiFuFragment;
@BindView(R.id.kaifu_skip_cur_time)
View mSkipCurTime;
@BindView(R.id.kaifu_skip_next_time)
View mSkipNextTime;
@Override
protected int getLayoutId() {
return R.layout.fragment_kaifu_wrapper;
@ -99,4 +116,23 @@ public class KaiFuWrapperFragment extends NormalFragment {
}
}
public void pageChange(int index) {
if (index == 0) {
mSkipCurTime.setVisibility(View.VISIBLE);
} else {
mSkipCurTime.setVisibility(View.GONE);
}
}
@OnClick({R.id.kaifu_skip_next_time, R.id.kaifu_skip_cur_time})
public void onViewClick(View view) {
if (view.getId() == R.id.kaifu_skip_next_time) {
EventBus.getDefault().post(new EBTypeChange(SKIP_NEXT_TIME, mGameKaiFuFragment != null && mGameKaiFuFragment.isVisible()
? CUR_GAME_KAIFU : CUR_ALL_KAIFU));
} else {
EventBus.getDefault().post(new EBTypeChange(SKIP_CUR_TIME, mGameKaiFuFragment != null && mGameKaiFuFragment.isVisible()
? CUR_GAME_KAIFU : CUR_ALL_KAIFU));
}
}
}