Home | History | Annotate | Download | only in viewpager
      1 package com.davemorrissey.labs.subscaleview.test.viewpager;
      2 
      3 import android.os.Bundle;
      4 import android.support.v4.app.Fragment;
      5 import android.support.v4.app.FragmentManager;
      6 import android.support.v4.app.FragmentStatePagerAdapter;
      7 import android.support.v4.view.ViewPager;
      8 import android.view.View;
      9 
     10 import com.davemorrissey.labs.subscaleview.test.AbstractPagesActivity;
     11 import com.davemorrissey.labs.subscaleview.test.Page;
     12 import com.davemorrissey.labs.subscaleview.test.R;
     13 
     14 import java.util.Arrays;
     15 
     16 import static com.davemorrissey.labs.subscaleview.test.R.layout.view_pager;
     17 import static com.davemorrissey.labs.subscaleview.test.R.string.pager_p1_subtitle;
     18 import static com.davemorrissey.labs.subscaleview.test.R.string.pager_p1_text;
     19 import static com.davemorrissey.labs.subscaleview.test.R.string.pager_p2_subtitle;
     20 import static com.davemorrissey.labs.subscaleview.test.R.string.pager_p2_text;
     21 import static com.davemorrissey.labs.subscaleview.test.R.string.pager_title;
     22 
     23 public class ViewPagerActivity extends AbstractPagesActivity {
     24 
     25     private static final String[] IMAGES = { "sanmartino.jpg", "swissroad.jpg" };
     26 
     27     public ViewPagerActivity() {
     28         super(pager_title, view_pager, Arrays.asList(
     29                 new Page(pager_p1_subtitle, pager_p1_text),
     30                 new Page(pager_p2_subtitle, pager_p2_text)
     31         ));
     32     }
     33 
     34     @Override
     35     protected void onCreate(Bundle savedInstanceState) {
     36         super.onCreate(savedInstanceState);
     37         ViewPager horizontalPager = findViewById(R.id.horizontal_pager);
     38         horizontalPager.setAdapter(new ScreenSlidePagerAdapter(getSupportFragmentManager()));
     39         ViewPager verticalPager = findViewById(R.id.vertical_pager);
     40         verticalPager.setAdapter(new ScreenSlidePagerAdapter(getSupportFragmentManager()));
     41     }
     42 
     43     @Override
     44     public void onBackPressed() {
     45         ViewPager viewPager = findViewById(getPage() == 0 ? R.id.horizontal_pager : R.id.vertical_pager);
     46         if (viewPager.getCurrentItem() == 0) {
     47             super.onBackPressed();
     48         } else {
     49             viewPager.setCurrentItem(viewPager.getCurrentItem() - 1);
     50         }
     51     }
     52 
     53     @Override
     54     protected void onPageChanged(int page) {
     55         if (getPage() == 0) {
     56             findViewById(R.id.horizontal_pager).setVisibility(View.VISIBLE);
     57             findViewById(R.id.vertical_pager).setVisibility(View.GONE);
     58         } else {
     59             findViewById(R.id.horizontal_pager).setVisibility(View.GONE);
     60             findViewById(R.id.vertical_pager).setVisibility(View.VISIBLE);
     61         }
     62     }
     63 
     64     private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
     65         ScreenSlidePagerAdapter(FragmentManager fm) {
     66             super(fm);
     67         }
     68 
     69         @Override
     70         public Fragment getItem(int position) {
     71             ViewPagerFragment fragment = new ViewPagerFragment();
     72             fragment.setAsset(IMAGES[position]);
     73             return fragment;
     74         }
     75 
     76         @Override
     77         public int getCount() {
     78             return IMAGES.length;
     79         }
     80     }
     81 
     82 }
     83