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):
- ViewPager & ViewPagerIndicator no muestra nada
- Excepción "recurso no es un dibujable" mientras infla com.viewpagerindicator.TabPageIndicator
- Creación de una compilación de Gradle para Android que utiliza ViewPagerIndicator
- Asistente condicional / inicialización con ViewPager
- Cambiar el nombre de página en Android Viewpager
@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
- Java.lang.IllegalStateException: ViewPager no se ha consolidado (usando el indicador JakeWharton ViewPager)
- Android: RecyclerView dentro de un ScrollView
- Cómo implementar en el icono de escuchar el clic en IconPageIndicator
- Tirar para actualizar y loadmore listview como facebook
- Cómo cambiar el estilo de texto TabPageIndicator - Negrita, TextSize en seleccionado?
- Uso de la fuente personalizada en viewpagerindicator
- ViewPagerIndicator - Establece TabPageIndicator en el centro
- Gradle - No se puede importar viewpagerindicator en Android Studio usando gradle dependency
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