あなたが探しているのはですViewPager。目的の動作を作成する方法を示すために、小さなサンプルを作成しました。
private class MyAdapter extends FragmentPagerAdapter {
public MyAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
if (position == 0) {
return StarterFragment.newInstance(R.id.viewPagerIdFromTheLayout);
} else {
return NormalFragment.newInstance(position);
}
}
@Override
public int getCount() {
return 5;
}
}
public static class StarterFragment extends ListFragment {
public static StarterFragment newInstance(int pagerId) {
StarterFragment sf = new StarterFragment();
Bundle args = new Bundle();
args.putInt("pagerId", pagerId);
sf.setArguments(args);
return sf;
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
((ViewPager) getActivity().findViewById(
getArguments().getInt("pagerId"))).setCurrentItem(position,
true);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, new String[] { "None",
"First Page", "Second Page", "Third Page", "Forth Page" }));
}
}
public static class NormalFragment extends Fragment {
public static NormalFragment newInstance(int position) {
NormalFragment nf = new NormalFragment();
Bundle args = new Bundle();
args.putInt("position", position);
nf.setArguments(args);
return nf;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
TextView tv = new TextView(getActivity());
tv.setText("Fragment no." + getArguments().getInt("position"));
return tv;
}
}
コードは次のようになります。ViewPager上記のアダプタを使用してを作成します。これViewPagerには2つのタイプがあります。1つはFragmentsすべての方向性を持ち、もう1つはスクロールButtonsする通常のタイプです。Fragments簡単にするためにListFragment、を使用しました。独自のレイアウトを使用しButtons、コードを簡単に適応させることができます。これに、からFragmentのIDを渡して、後で使用します。ユーザーが最初からのいずれかをクリックすると、そのメソッドで、とを使用してを検索し、そのメソッドを使用してそのまでスクロールします。によるViewPagerFragmentActivityButtonsFragmentonClickButtongetActivity()findViewByIdViewPagersetCurrentItem(position, true)FragmentViewPagerの間を手動でスワイプすることはできFragmentsます。