package com.ladjzero.uzlee; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.ActionBar; import android.support.v7.widget.Toolbar; import android.util.SparseArray; import android.view.LayoutInflater; import android.view.View; import com.r0adkll.slidr.model.SlidrInterface; import com.rey.material.widget.TabPageIndicator; /** * Created by chenzhuo on 15-10-2. */ public abstract class ActivityPagerBase extends ActivityEasySlide implements ViewPager.OnPageChangeListener { SectionsPagerAdapter mSectionsPagerAdapter; ViewPager mViewPager; SparseArray<Fragment> mFragmentCache; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_pager_base); setSupportActionBar((Toolbar) findViewById(R.id.toolbar)); ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); LayoutInflater mInflater = LayoutInflater.from(this); View customView = mInflater.inflate(R.layout.tab_page_indicator_fixed, null); actionBar.setTitle(null); actionBar.setDisplayShowCustomEnabled(true); actionBar.setCustomView(customView); mFragmentCache = new SparseArray<>(); mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); mViewPager = (ViewPager) findViewById(R.id.pager); mViewPager.setAdapter(mSectionsPagerAdapter); TabPageIndicator tabs = (TabPageIndicator) customView.findViewById(R.id.tabs); tabs.setViewPager(mViewPager); tabs.setOnPageChangeListener(this); } @Override protected void onDestroy() { mFragmentCache.clear(); super.onDestroy(); } @Override public void onPageScrolled(int i, float v, int i2) { } @Override public void onPageSelected(int i) { SlidrInterface it = getSlidrInterface(); if (i == 0) it.unlock(); else it.lock(); } @Override public void onPageScrollStateChanged(int i) { } /** * A {@link android.support.v13.app.FragmentPagerAdapter} that returns a fragment corresponding to * one of the sections/tabs/pages. */ public class SectionsPagerAdapter extends FragmentPagerAdapter { public SectionsPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return ActivityPagerBase.this.getItem(position); } @Override public int getCount() { return ActivityPagerBase.this.getCount(); } @Override public CharSequence getPageTitle(int position) { return ActivityPagerBase.this.getPageTitle(position); } } public abstract Fragment getItem(int position); public abstract int getCount(); public abstract CharSequence getPageTitle(int position); }