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 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); } } }