Estoy tratando de usar el Fragmento, ViewPager & co. de la biblioteca de soporte de Android v4. Los fragmentos parecen desplazarse cuando escucho eventos de cambio de página desde el buscapersonas pero el contenido no está visible. Lo que básicamente tengo es:ViewPager con FragmentPagerAdapter no muestra contenido
Un FragmentActivity:
public class MyActivity extends FragmentActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
FragmentPagerAdapter fpa = new MyPagerAdapter(this, createFragments());
ViewPager vp = (ViewPager) findViewById(R.id.pager);
vp.setAdapter(fpa);
}
private List<Fragment> createFragments() {
List<Fragment> list = new ArrayList<Fragment>();
list.add(Fragment.instantiate(this, First.class.getName()));
list.add(Fragment.instantiate(this, Second.class.getName()));
list.add(Fragment.instantiate(this, Third.class.getName()));
return list;
}
@Override
protected void onSaveInstanceState(Bundle outState) {
}
Un FragmentPagerAdapter:
public class MyPagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments;
public MyPagerAdapter(FragmentActivity activity, List<Fragment> fragments) {
super(activity.getSupportFragmentManager());
this.fragments = fragments;
}
@Override
public Fragment getItem(int i) {
return fragments.get(i);
}
@Override
public int getCount() {
return fragments.size();
}
@Override
public boolean isViewFromObject(View view, Object o) {
return view.equals(o);
}
}
Y tres fragmentos que se ven así:
public class First extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.first, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
}
Y tienen el diseño como estos:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:text="First Fragment"
android:id="@+id/firstText"/>
</LinearLayout>
originalmente se me olvidó añadir el diseño principal, aquí se trata:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_width="fill_parent"/>
</LinearLayout>
Le agradecería si alguien me puede decir lo que estoy haciendo mal.
podría ofrecerle la disposición que contiene el ViewPager? ¿Has puesto un punto de interrupción en getItem() solo para asegurarte de que está disparando? Además, establezca textcolor en blanco en esas textviews solo para asegurarse! –
oh sí, agregó que ahora. – rgngl
Su viewpager tiene su altura establecida para envolver el contenido, y sus páginas tienen su altura configurada para llenar el elemento principal; esto no tiene sentido y probablemente signifique que sus páginas no ocupen espacio. Sospecho que quieres que el viewpager tenga una altura de fill_parent también. –