Pregunta

Necesito crear cuatro diseños diferentes, cada uno a una página de ViewpagerIndicator. ¿Cómo puedo hacer esto?El ViewpagerIndicator ya está funcionando, pero estoy usando la muestra de http://viewpagerindicator.com y hay un simpleVista de texto para todas las páginas.

Ver la muestra (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 consultar un diseño de recursos relacionado (XML).¿Es posible?

También debo garantizar que todas las vistas de todas las páginas se carguen a la vez, una vez cuando creo la actividad, lo que permite actualizar los valores más adelante.

¡Aprecio cualquier ayuda! Gracias

¿Fue útil?

Solución

Encontré una solución simple que funciona para mí.Aquí esta lo que hice.

fragment.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;
    }

Comenta el bucle POR AQUÍ.Simplemente consiga el Mcontent que vamos a usar como una bandera.

Ahora, en su onCreateView(), cambie de la siguiente manera,

   @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 podrá inflar sus puntos de vista en función del nombre del título que hemos utilizado como la bandera.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top