android-support-v4を使ってスワイプする
スワイプ動作をやるために必要なこと
サンプル的なコード
android-support-v4.jarを取ってくる
以下の場所にあるからコピーして場所を移してimportするなりそのままでimportするなりしましょう
ViewPagerを含んだLayoutファイルを作成
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <android.support.v4.view.ViewPager android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:id="@+id/viewpager"/> </LinearLayout>
FragmentActivityを作成
public class TopFragmentActivity extends FragmentActivity { private ViewPager mViewPager; private TopViewPagerAdapter mPagerAdapter; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fragment); mPagerAdapter = new TopViewPagerAdapter(getSupportFragmentManager()); mViewPager = (ViewPager) findViewById(R.id.viewpager); mViewPager.setAdapter(mPagerAdapter); } }
ViewPagerAdapterを作成
public class TopViewPagerAdapter extends FragmentPagerAdapter { // こいつがページ数 private static final int PAGE_NUM = 2; public TopViewPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { Fragment fragment = null; /* * このpositionに表示するViewの番号が来る * 初期表示は0で右にスワイプするごとにインクリメントみたいな * 毎回newせずにコンストラクタでnewして渡すほうがいいはず */ fragment = new TopFragment(); return fragment; } /* * こいつの返却数がページ数になる */ @Override public int getCount() { return PAGE_NUM; } }
Fragmentを作成する
public class TopFragment extends Fragment { private Button button; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.play_list_select, container, false); Activity act = getActivity(); // こんな感じでLayoutファイルのViewを取ってくる button= (Button)v.findViewById(R.id.button); /* * あとは好きに書いてくださいなー */ return v; } }
あとがき
こんな感じでスワイプ動作ができるようになるはず。
やっぱりスマホならスワイプ動作が使いやすいよね。