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.

  • Dependencia de ViewPagerIndicator con Gradle y Android Studio
  • Imágenes en lugar de textos de título en las pestañas del widget ViewPagerIndicator
  • NoClassDefFoundError al usar proguard
  • ViewPagerIndicator CirclePageIndicator no se puede instanciar
  • Añadir ViewPagerIndicator a Android Studio
  • ViewPager dentro de Fragmento pierde contenido al volver a él
  • ¿Cómo hacer actualizaciones de ViewPager con frecuencia?
  • ¿Existe un DotsPageIndicator predeterminado para Android móvil (no usar)?
  • Aparato de vista de Android con indicador de página
  • Utilizar varios diseños en ViewPageIndicator
  • ¿Cómo cambiar el fondo de la pestaña en las pestañas de viewpagerindicator?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.