Android: ViewPagerIndicator – Creación de diferentes diseños para diferentes páginas

Necesito crear cuatro diseños diferentes, cada uno a una página de ViewPagerIndicator. ¿Cómo puedo hacer esto? ViewPagerIndicator ya está funcionando, pero estoy usando el ejemplo de http://viewpagerindicator.com y se ha creado un TextView simple para todas las páginas.

Vea el ejemplo (TestFragment.java):

@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { TextView text = new TextView(getActivity()); text.setGravity(Gravity.CENTER); text.setText(mContent); text.setTextSize(20 * getResources().getDisplayMetrics().density); text.setPadding(20, 20, 20, 20); LinearLayout layout = new LinearLayout(getActivity()); layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); layout.setGravity(Gravity.CENTER); layout.addView(text); return layout; } 

Necesito identificar la página actual (posición) y hacer referencia a un diseño de recursos relacionados (XML). ¿Es posible?

También necesito asegurar que todas las vistas de todas las páginas se carguen de una sola vez al crear la actividad, permitiendo que los valores se actualicen posteriormente.

¡Aprecio cualquier ayuda !! Gracias

He encontrado una solución sencilla que funciona para mí. Esto es lo que hice.

TestFragment.class

  public static TestFragment newInstance(String content) { TestFragment fragment = new TestFragment(); // // StringBuilder builder = new StringBuilder(); // for (int i = 0; i < 20; i++) { // builder.append(content).append(" "); // } // builder.deleteCharAt(builder.length() - 1); fragment.mContent = content; return fragment; } 

Comente el bucle for aquí. Sólo tienes que obtener el mContent que vamos a utilizar como una bandera.

Ahora en su onCreateView() cámbiela como sigue,

  @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TextView text = new TextView(getActivity()); // text.setGravity(Gravity.CENTER); // text.setText(mContent); // text.setTextSize(20 * getResources().getDisplayMetrics().density); // text.setPadding(20, 20, 20, 20); // // LinearLayout layout = new LinearLayout(getActivity()); // layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); // layout.setGravity(Gravity.CENTER); // layout.addView(text); Log.i("mContent",mContent); View view=null; if(mContent.equalsIgnoreCase("title1")) { view = inflater.inflate(R.layout.one, container, false); } else if(mContent.equalsIgnoreCase("title2")) { view = inflater.inflate(R.layout.two, container, false); } else if(mContent.equalsIgnoreCase("title3")) { view = inflater.inflate(R.layout.three, container, false); } return view; } 

Eso es todo lo que se necesita. Ahora usted será capaz de inflar sus puntos de vista sobre la base del nombre del título que hemos utilizado como la bandera.

  • Cambiar el nombre de página en Android Viewpager
  • TabPageIndicator no estilo correctamente dentro de Fragmento
  • ¿Existe un DotsPageIndicator predeterminado para Android móvil (no usar)?
  • ViewPager & ViewPagerIndicator no muestra nada
  • No se pudo encontrar el estilo vpiCirclePageIndicatorStyle
  • Espacio entre elementos del indicador
  • Indicar después de pasar la última página en ViewPager
  • NoClassDefFoundError al usar proguard
  • Uso de la biblioteca ViewPagerIndicator con Android Studio y Gradle
  • Resaltar o subrayar seleccionado TabPageIndicator
  • Anidar las pestañas en Android 4 con la biblioteca de soporte (ActionBarSherlock)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.