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):
- Android: RecyclerView dentro de un ScrollView
- Cómo agregar una vista personalizada en ViewPager para un tutorial
- Android ViewPager guardar página anterior en onPageSelected
- Cambiar dinámicamente los títulos de ViewPagerIndicator
- Viewpager muestra página incorrecta
@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
- Deshabilitar animación suave al hacer clic en las pestañas con ViewPagerIndicator
- Dar texto de la pestaña seleccionada un color diferente utilizando ViewPagerIndicator
- Añadir ViewPagerIndicator a Android Studio
- Java.lang.IllegalStateException: ViewPager no se ha consolidado (usando el indicador JakeWharton ViewPager)
- Cómo implementar en el icono de escuchar el clic en IconPageIndicator
- ¿Funciona PullToRefresh con FragmentPagerAdapter?
- ViewPager con indicador sin la biblioteca de soporte de Android
- Viewpager + FragmentpagerAdapet + Fragmentos + ListView = aplicación insanamente lenta
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.
- Cómo cambiar el modo de selección ListView de solo a múltiple al hacer clic en evento en android?
- Android Syncadapter no permitir que el usuario elija sincronizar o no sincronizar