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を色々とみてみたのですが、どこを変更すればよいのか考えあぐねております。
よろしければご教示頂けると幸いです。
以上、よろしくお願い致します。