スワイプで切り替わるが画面の作成
いくつかのページがある場合
左右にスワイプで切り替えできると便利
スワイプで切り替わる画面を作成するには
ViewPagerクラスを使う
そして、表示するFragmentは
FragmentPagerAdapterを継承したクラスへ作る
まずは、レイアウト定義のファイル作成
<LinearLayout xmlns:android="http://scheams.android.com/apk/res/android" 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クラスを作成する
まずは、レイアウト定義
<LinearLayout xmlns:android="http://scheams.android.com/apk/res/android" xmlns:ads="http://scheams.android.com/apk/lib/com.google.ads" 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クラスを作成する
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()の中でやる
mAdapter = new ViewPagerAdapter(getSupportFragmentManager()); mPager = (ViewPager)findViewById(R.id.pager); mPager.setAdapter(mAdapter);
これで、スワイプで切り替わる画面ができる
もし、大量のページがあるなら
FragmentPagerAdapterの代わりに
FragmentStatePagerAdapterを使う
レスポンスは悪くなるけど
ページが表示されなくなると破棄するため
メモリ節約になる