スワイプで切り替わるが画面の作成


スワイプで切り替わるが画面の作成スワイプで切り替わるが画面の作成

いくつかのページがある場合
左右にスワイプで切り替えできると便利

スワイプで切り替わる画面を作成するには
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を使う

レスポンスは悪くなるけど
ページが表示されなくなると破棄するため
メモリ節約になる


PDF
カテゴリー: 未分類   パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>