Android中从ViewPager片段到片段的导航
我想制作3套ViewPager,每套3页。每个页面都有一个由pagerAdapter控制的片段。在每个片段中,我想放置两个按钮,可以将您带到另一个ViewPager集合。 所以在片段内部,我将实现onClickListener和Click方法Android中从ViewPager片段到片段的导航,android,android-fragments,android-viewpager,Android,Android Fragments,Android Viewpager,我想制作3套ViewPager,每套3页。每个页面都有一个由pagerAdapter控制的片段。在每个片段中,我想放置两个按钮,可以将您带到另一个ViewPager集合。 所以在片段内部,我将实现onClickListener和Click方法 @Override public void onClick(View v) { switch(v.getId()) { case R.id.imageButtonChoice1: break;
@Override
public void onClick(View v)
{
switch(v.getId()) {
case R.id.imageButtonChoice1:
break;
case R.id.imageButtonChoice2:
break;
}
}
那么我是否必须关闭控制3个ViewPageRadapter的整个活动并重新加载它?
或
我应该把这些导航按钮放在活动中,而不是放在片段中吗?
如何通过单击一个imagebutton转到另一个viewpager集合?每个按钮都可以启动一个包含一组不同viewpager的活动。 在活动中,您需要impleten ViewPager 这是一个示例(在本例中,在片段之间传递一个对象):
当您可以创建一个包含9页的viewpager并在页面之间导航时,为什么要创建3个每个包含3页的viewpager?如果是这样,它们是如何放置在活动中的?因为每个viewpager都有不同的主题如果viewpager彼此重叠,您可以相应地设置它们的可见性。你能发布你的xml代码吗?如果PageRadapter是单独的类,以便更容易控制和编辑,那不是更好吗?我通过重新加载控制PageRadapter的活动解决了这个问题
public class SectionsPagerAdapter extends FragmentPagerAdapter {
Instalacion instalacion;
ArrayList<Actividad> arrayListActividades;
public SectionsPagerAdapter(FragmentManager fm, Instalacion instalacion, ArrayList<Actividad> arrayListActividades) {
super(fm);
this.instalacion = instalacion;
this.arrayListActividades = arrayListActividades;
}
@Override
public Fragment getItem(int position) {
Fragment fragment = new Fragment();
switch (position) {
case 0:
fragment = new InfoInstalacionFragment1();
Bundle bundle = new Bundle();
bundle.putSerializable("key", (Instalacion)instalacion);
fragment.setArguments(bundle);
return fragment;
case 1:
fragment = new InfoInstalacionFragment2();
Bundle bundle2 = new Bundle();
bundle2.putSerializable("key", (Instalacion) instalacion);
fragment.setArguments(bundle2);
return fragment;
case 2:
fragment = new InfoInstalacionFragment3();
Bundle bundle3 = new Bundle();
bundle3.putSerializable("key", (ArrayList)arrayListActividades);
fragment.setArguments(bundle3);
return fragment;
return fragment;
default:
break;
}
return fragment;
}
public int getCount() {
// Show 3 total pages.
return 3;
}
@Override
public CharSequence getPageTitle(int position) {
Locale l = Locale.getDefault();
Fragment fragment = new Fragment();
switch (position) {
case 0:
return getString(R.string.title_section1).toUpperCase(l);
case 1:
return getString(R.string.title_section2).toUpperCase(l);
case 2:
return getString(R.string.title_section3).toUpperCase(l);
}
return null;
}
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager(), instalacion, arrayListActividades);
// Instanciamos nuestro ViewPager
mViewPager = (ViewPager) findViewById(R.id.pager);
//habilitar el listenner
mViewPager.setOnPageChangeListener(this);
// Establecemos el Adapter
mViewPager.setAdapter(mSectionsPagerAdapter)