Files
assistant-android/app/src/main/java/com/gh/gamecenter/LibaoActivity.java

188 lines
6.9 KiB
Java

package com.gh.gamecenter;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.util.DisplayMetrics;
import android.view.Gravity;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.gh.base.BaseFragmentActivity;
import com.gh.common.util.DisplayUtils;
import com.gh.common.view.NoScrollableViewPager;
import com.gh.gamecenter.adapter.FragmentAdapter;
import com.gh.gamecenter.eventbus.EBReuse;
import com.gh.gamecenter.eventbus.EBUISwitch;
import com.gh.gamecenter.libao.Libao1Fragment;
import com.gh.gamecenter.libao.Libao2Fragment;
import com.gh.gamecenter.libao.Libao3Fragment;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import de.greenrobot.event.EventBus;
/**
* Created by khy on 2016/12/12.
*
*/
public class LibaoActivity extends BaseFragmentActivity implements View.OnClickListener,
ViewPager.OnPageChangeListener {
@BindView(R.id.libao_vp_content) NoScrollableViewPager mLibaoVp;
@BindView(R.id.libao_ll_top) LinearLayout mLibaoTopLl;
@BindView(R.id.libao_slide_line) View mLibaoLine;
@BindView(R.id.vp_tab) LinearLayout mTabLl;
@BindView(R.id.libao_history_title) TextView mHistoryTitle;
private TextView mZuixinTv;
private TextView mGuanzhuTv;
private TextView mChunhaoxiangTv;
private int currentItem;
private int width;
private LinearLayout.LayoutParams lparams;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View view = View.inflate(this, R.layout.activity_libao, null);
init(view, "礼包中心");
initTextView();
List<Fragment> list = new ArrayList<>();
list.add(new Libao1Fragment());
list.add(new Libao2Fragment());
list.add(new Libao3Fragment());
mLibaoVp.setAdapter(new FragmentAdapter(getSupportFragmentManager(), list));
mLibaoVp.addOnPageChangeListener(this);
DisplayMetrics outMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(outMetrics);
width = outMetrics.widthPixels / 3;
lparams = new LinearLayout.LayoutParams(width / 2,
DisplayUtils.dip2px(this, 2));
lparams.leftMargin = (int) (width * (currentItem + 0.25f));
mLibaoLine.setLayoutParams(lparams);
mLibaoTopLl.postDelayed(new Runnable() {
@Override
public void run() {
EventBus.getDefault().post(new EBUISwitch("LibaoActivity", 0));
}
}, 100);
}
private void initTextView() {
mZuixinTv = new TextView(this);
mZuixinTv.setText("最新");
if (currentItem == 0) {
mZuixinTv.setTextColor(getResources().getColor(R.color.theme));
} else {
mZuixinTv.setTextColor(getResources().getColor(R.color.title));
}
mZuixinTv.setGravity(Gravity.CENTER);
mZuixinTv.setOnClickListener(this);
LinearLayout.LayoutParams lparams1 = new LinearLayout.LayoutParams(
0, DisplayUtils.dip2px(this, 35));
lparams1.weight = 1;
mLibaoTopLl.addView(mZuixinTv, lparams1);
mGuanzhuTv = new TextView(this);
mGuanzhuTv.setText("关注");
if (currentItem == 1) {
mGuanzhuTv.setTextColor(getResources().getColor(R.color.theme));
} else {
mGuanzhuTv.setTextColor(getResources().getColor(R.color.title));
}
mGuanzhuTv.setGravity(Gravity.CENTER);
mGuanzhuTv.setOnClickListener(this);
LinearLayout.LayoutParams lparams2 = new LinearLayout.LayoutParams(
0, DisplayUtils.dip2px(this, 35));
lparams2.weight = 1;
mLibaoTopLl.addView(mGuanzhuTv, lparams2);
mChunhaoxiangTv = new TextView(this);
mChunhaoxiangTv.setText("存号箱");
if (currentItem == 2) {
mChunhaoxiangTv.setTextColor(getResources().getColor(R.color.theme));
} else {
mChunhaoxiangTv.setTextColor(getResources().getColor(R.color.title));
}
mChunhaoxiangTv.setGravity(Gravity.CENTER);
mChunhaoxiangTv.setOnClickListener(this);
LinearLayout.LayoutParams lparams3 = new LinearLayout.LayoutParams(
0, DisplayUtils.dip2px(this, 35));
lparams3.weight = 1;
mLibaoTopLl.addView(mChunhaoxiangTv, lparams3);
}
@Override
public void onClick(View v) {
if (v == mZuixinTv) {
mLibaoVp.setCurrentItem(0);
} else if (v == mGuanzhuTv) {
mLibaoVp.setCurrentItem(1);
} else if (v == mChunhaoxiangTv) {
mLibaoVp.setCurrentItem(2);
}
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
if (positionOffset != 0) {
lparams.leftMargin = (int) (width * (position + positionOffset + 0.25f));
mLibaoLine.setLayoutParams(lparams);
} else {
if (currentItem != mLibaoVp.getCurrentItem()) {
currentItem = mLibaoVp.getCurrentItem();
EventBus.getDefault().post(new EBUISwitch("LibaoActivity", currentItem));
}
}
}
@Override
public void onPageSelected(int position) {
if (position == 0){
mZuixinTv.setTextColor(getResources().getColor(R.color.theme));
mGuanzhuTv.setTextColor(getResources().getColor(R.color.title));
mChunhaoxiangTv.setTextColor(getResources().getColor(R.color.title));
} else if (position == 1) {
mZuixinTv.setTextColor(getResources().getColor(R.color.title));
mGuanzhuTv.setTextColor(getResources().getColor(R.color.theme));
mChunhaoxiangTv.setTextColor(getResources().getColor(R.color.title));
} else if (position == 2) {
mZuixinTv.setTextColor(getResources().getColor(R.color.title));
mGuanzhuTv.setTextColor(getResources().getColor(R.color.title));
mChunhaoxiangTv.setTextColor(getResources().getColor(R.color.theme));
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
// 页面切换事件(查看历史礼包的页面)
public void onEventMainThread(EBReuse reuse) {
if ("openPage".equals(reuse.getType())) { //TODO 设置新的TAB
mLibaoTopLl.setVisibility(View.GONE);
mLibaoLine.setVisibility(View.GONE);
mHistoryTitle.setVisibility(View.VISIBLE);
mHistoryTitle.setTextColor(getResources().getColor(R.color.hint));
mLibaoVp.setScrollable(false);
} else if ("closePage".equals(reuse.getType())) {
mLibaoTopLl.setVisibility(View.VISIBLE);
mLibaoLine.setVisibility(View.VISIBLE);
mHistoryTitle.setVisibility(View.GONE);
mLibaoVp.setScrollable(true);
}
}
}