package cn.flightfeather.thirdappmodule.activity; import android.content.SharedPreferences; import android.os.Build; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.content.ContextCompat; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.LinearLayout; import java.util.ArrayList; import java.util.List; import cn.flightfeather.thirdappmodule.CommonApplication; import cn.flightfeather.thirdappmodule.R; import cn.flightfeather.thirdappmodule.adapter.ContentFragmentAdapter; import cn.flightfeather.thirdappmodule.module.login.CardFragment; import cn.flightfeather.thirdappmodule.util.updateApp.UpdateAppUtil; import cn.flightfeather.thirdappmodule.view.OrientedViewPager; import cn.flightfeather.thirdappmodule.view.VerticalStackTransformer; public class LoginActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener { //横向ViewPager private OrientedViewPager movp_main; //线性布局 private LinearLayout mln; //卡片碎片 private CardFragment fragmentCurrent; //内容碎片适配器 private ContentFragmentAdapter adapter; //是否显示 private Boolean show = false; //碎片集合 public List fragmentList = new ArrayList<>(); //当前位置 private int positionCurrent = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); // //将此Activity加入集合中 // MyApplication.getInstance().addActivity(this); //初始化控件 initControl(); //创建内容碎片适配器 createContentFragmentAdapter(); //设置横向ViewPager setOrientationViewPager(); //设置监听 setListener(); //初始化半透明状态栏 initTransparentStatsBar(); //更新检查 checkUpdate(); } private void setListener() { //设置ViewPager滑动监听 movp_main.setOnPageChangeListener(this); } private void setOrientationViewPager() { movp_main.setOrientation(OrientedViewPager.Orientation.VERTICAL); movp_main.setOffscreenPageLimit(2); movp_main.setPageTransformer(true, (ViewPager.PageTransformer) new VerticalStackTransformer(this)); movp_main.setAdapter(adapter); movp_main.setDisableTouch(true); SharedPreferences sharedPre = getSharedPreferences("config", MODE_PRIVATE); positionCurrent = sharedPre.getInt("pos", 0); //设置默认显示碎片 fragmentCurrent = (CardFragment) adapter.instantiateItem(movp_main, positionCurrent); } private void createContentFragmentAdapter() { adapter = new ContentFragmentAdapter(getSupportFragmentManager(), getCardFragments()); } protected ContentFragmentAdapter.onGetItemInterface getCardFragments() { return position -> { int a = position%3; if (a < 0) a = 0; return CardFragment.newInstance(a + 1, position); }; // fragmentList.add(CardFragment.newInstance(1, 0)); // fragmentList.add(CardFragment.newInstance(2, 1)); // fragmentList.add(CardFragment.newInstance(3, 2)); } private void initControl() { movp_main = (OrientedViewPager) findViewById(R.id.ovp_main); mln = (LinearLayout) findViewById(R.id.mln); } public void initTransparentStatsBar() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); this.getWindow().setStatusBarColor(ContextCompat.getColor(this, R.color.transStatusBar)); mln.setPadding(0, getStatusBarHeight(), 0, 0); } } public int getStatusBarHeight() { int result = 0; int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); if (resourceId > 0) { result = getResources().getDimensionPixelSize(resourceId); } return result; } public void showButton() { // fragmentCurrent = adapter.getCardFragment(); fragmentCurrent.showLoginButton(); } public void hideButton() { fragmentCurrent.hideLoginButtion(); } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { if (position == 0 && positionOffsetPixels == 0) { show = true; } else { show = false; } } @Override public void onPageSelected(int position) { fragmentCurrent = (CardFragment) adapter.instantiateItem(movp_main, position); showButton(); int a = position % 3; if (a == 0) { mln.setBackgroundColor(getResources().getColor(R.color.lightBlue)); fragmentCurrent.changeLoginColor("#03A9F4"); } else if (a == 1) { mln.setBackgroundColor(getResources().getColor(R.color.lightGreen)); fragmentCurrent.changeLoginColor("#8BC34A"); } else if (a == 2) { mln.setBackgroundColor(getResources().getColor(R.color.orange)); fragmentCurrent.changeLoginColor("#f26d44"); } } @Override public void onPageScrollStateChanged(int state) { if (state == 1) { hideButton(); } else if (state == 2) { showButton(); } else if (state == 0 && show) { showButton(); } } public void setCurFragment(int pos) { movp_main.setCurrentItem(pos); } private void checkUpdate() { UpdateAppUtil updateAppUtil = new UpdateAppUtil((CommonApplication) getApplication(), this); updateAppUtil.checkUpdateApp(false); } }