github : yanzm/LoopViewPager - https://github.com/yanzm/LoopViewPager
ループできる ViewPager です。
(Loop ViewPager, Looping ViewPager)
以前に How to create looping ViewPager というエントリーを書きましたが、不完全だったので、まともなものを作りました。
今回は制限なしです。
Support Package v4 の ViewPager の代わりに使うだけで OK です。
ViewPager から PagerAdapter の package private なメソッドを呼んでいるので、PagerAdapter, FragmentPagerAdapter, FragmentStatePagerAdapter は LoopViewPager と同じパッケージにあるやつを使ってください。
r11 の Suppor Pakcage v4 の ViewPager のコードをベースに変更しています。
PagerAdapter を継承したアダプターの使い方は今まで通りです。
使い方
- <com.uphyca.android.loopviewpager.LoopViewPager
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:id="@+id/pager"
- android:layout_width="match_parent"
- android:layout_height="match_parent" />
- public class MainActivity extends Activity {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- LoopViewPager pager = (LoopViewPager) findViewById(R.id.pager);
- pager.setAdapter(new MyFragmentStatePagerAdapter(getFragmentManager()));
- pager.setAdapter(new MyPagerAdapter());
- }
- class MyFragmentStatePagerAdapter extends FragmentStatePagerAdapter {
- public MyFragmentStatePagerAdapter(FragmentManager fm) {
- super(fm);
- }
- @Override
- public Fragment getItem(int position) {
- return SimpleFragment.newInstance(position);
- }
- @Override
- public int getCount() {
- return 10;
- }
- }
- }
Hi,
返信削除thank you ,for you code, it's the best for loopviewpager.
I have this problem, when I implement "public float getPageWidth(int position) " the loopviewpager don't works fine :(
Do you have a solution?
こんにちは。
返信削除後藤と申します。
いつも大変参考にさせていただいております。
現在、LoopViewPagerを参考にアプリを作成させていただいております。
当アプリでは、画面上にページ1の右側、ページ2の全体、ページ3の左側を表示させています。
しかし、ページ3を画面の中央にフリックさせたとき、ページ4が表示されるのに多少時間がかかってしまいます。
そこで、画面の初期表示時には、左右に2ページずつ用意されている状態にし、フリック時には2つ先のページを作成するようにしたいと考えております。
自分なりにLoopViewPagerを色々とみてみたのですが、どこを変更すればよいのか考えあぐねております。
よろしければご教示頂けると幸いです。
以上、よろしくお願い致します。