2016-01-20 81 views
1

我知道有關於無限分頁的幾個問題,但我仍然難以讓他們工作。 (我在Android Studio工作)讓InfiniteViewPager工作

我試圖從https://github.com/antonyt/InfiniteViewPager啓動並運行InfiniteViewPager。

我試圖讓這個工作,以便我可以在4頁/片段(A,B,C,D)上滑動,並具有正確的滑動功能D返回到A,左滑動在A上返回到D.

我導入了InfinitePagerAdapter和InfiniteViewPager Java類,並將InfiniteViewPager添加到我的activity_main.xml文件中。

但是,我堅持我需要的地方「用InfinitePagerAdapter包裝現有的PagerAdapter」。

這裏是我的代碼:

public class MainActivity extends AppCompatActivity { 

    PagerAdapter mPagerAdapter; 
    ViewPager mViewPager; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mPagerAdapter = new PagerAdapter(getSupportFragmentManager()); 
     mViewPager = (ViewPager) findViewById(R.id.pager); 
     mViewPager.setAdapter(mPagerAdapter); 
     //Cannot resolve symbol adapter 
     PagerAdapter wrappedAdapter = new InfinitePagerAdapter(adapter); 
     mViewPager.setAdapter(wrappedAdapter); 

     mViewPager.setOffscreenPageLimit(5); 
    } 

    public class PagerAdapter extends FragmentStatePagerAdapter { 

     public PagerAdapter(FragmentManager fm) { 
      super(fm); 
     } 

     @Override 
     public Fragment getItem(int position) { 
      //getItem is called to instantiate the fragment for the given page. 
      switch (position) { 

       default: 
        return Fragment1.newInstance(); 
       case 1: 
        return Fragment2.newInstance(); 
       case 2: 
        return Fragment3.newInstance(); 
       case 3: 
        return Fragment4.newInstance(); 
      } 
     } 

     @Override 
     public int getCount() { 
      // Show number of total pages. 
      return 4; 
     } 
    } 
} 

我不完全知道我應該被更換adapter,或者是否應該從其他Java類上拉。另外還有什麼我需要添加/更改才能使其工作?

+0

這裏看看演示,你會看到在代碼中的引用,它說(//wrap pager提供無限的分頁與環繞) - https://github.com/antonyt/InfiniteViewPager/tree/master/demo/src/main/java/com/antonyt/infiniteviewpager – Tasos

+0

@Tasos謝謝,我'我們現在就來看看,讓你知道它是怎麼回事 - 知道編碼,也不太清楚如何使用Github。 –

+0

@Tasos,所以我瞭解演示使用位置以便識別每次滑動後顯示的視圖。演示會創建一個ColourFragment的新實例,然後根據位置進行更改。我怎樣才能改變我創建的基於位置的不同片段的新實例?謝謝。 –

回答

0

我得有點演示的修修補補的工作後 - 代碼如下:

public class MainActivity extends FragmentActivity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     PagerAdapter adapter = new FragmentPagerAdapter(getSupportFragmentManager()) { 

      @Override 
      public int getCount() { 
       return 4; 
      } 

      @Override 
      public Fragment getItem(int position) { 
       final ArrayList<Fragment> fragmentPosition = new ArrayList<>(); 
       fragmentPosition.add(new Fragment1()); 
       fragmentPosition.add(new Fragment2()); 
       fragmentPosition.add(new Fragment3()); 
       fragmentPosition.add(new Fragment4()); 
       Fragment fragment = fragmentPosition.get(position); 
       Bundle args = new Bundle(); 
       fragment.setArguments(args); 
       return fragment; 
      } 
     }; 

     // wrap pager to provide infinite paging with wrap-around 
     PagerAdapter wrappedAdapter = new InfinitePagerAdapter(adapter); 

     // actually an InfiniteViewPager 
     ViewPager viewPager = (ViewPager) findViewById(R.id.pager); 
     viewPager.setAdapter(wrappedAdapter); 

    } 
}