スワイプで切り替わるが画面の作成
いくつかのページがある場合
左右にスワイプで切り替えできると便利
スワイプで切り替わる画面を作成するには
ViewPagerクラスを使う
そして、表示するFragmentは
FragmentPagerAdapterを継承したクラスへ作る
まずは、レイアウト定義のファイル作成
1 2 3 4 5 6 7 8 9 10 11 12 13 | < LinearLayout android:layout_width = "fill_parent" android:layout_height = "fill_parent" android:orientation = "vertical" > < android.support.v4.view.viewPager android:id = "@+id/pager" android:layout_width = "match_parent" android:layout_height = "match_parent" > </ android.support.v4.view.viewPager > </ LinearLayout > |
次に、PagerAdapterを継承したクラスを作成
これは、画面が切り替るタイミングで
Fragmentを生成する FragmentPagerAdapterクラスを作成する
まずは、レイアウト定義
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | < LinearLayout android:layout_width = "fill_parent" android:layout_height = "fill_parent" android:orientation = "vertical" > < android.support.v4.view.viewPager android:id = "@+id/pager" android:layout_width = "fill_parent" android:layout_height = "fill_parent" > </ android.support.v4.view.viewPager > </ LinearLayout > |
次に、PagerAdapterを継承したクラスの作成
画面が切り替わったタイミングで
Fragmentを生成するFragmentPagerAdapterクラスを作成する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | public static class ViewPagerAdapter extends FragmentPagerAdapter{ private String[] values = new String[]{ "page1" , "page2" }; public ViewPagerAdapter(FragmentManager fm){ super (fm); } @Override public Fragment getItem( int position){ ViewPagerFragment fragment = new ViewPagerFragment(); Bundle args= new Bundle(); args.putString( "value" , values[position]) ; fragment.setArguments(args); return fragment; } @Override public int getCount(){ return values.length; } } |
長さ取得には lengthを使うと便利
次に、ViewPagerクラスへPagerAdapterクラスをセット
最初に、部品のインスタンスを取得してセットする
今回はonCreate()の中でやる
1 2 3 4 5 | mAdapter = new ViewPagerAdapter(getSupportFragmentManager()); mPager = (ViewPager)findViewById(R.id.pager); mPager.setAdapter(mAdapter); |
これで、スワイプで切り替わる画面ができる
もし、大量のページがあるなら
FragmentPagerAdapterの代わりに
FragmentStatePagerAdapterを使う
レスポンスは悪くなるけど
ページが表示されなくなると破棄するため
メモリ節約になる