Domanda

Ho bisogno di creare quattro diversi layout, ognuno su una pagina di ViewPagerinDicator. Come posso fare questo?Il ViewPagerinDicator sta già lavorando, ma sto usando il campione da http://viewpagerindicator.com e ci viene creata un sempliceTextVisualizza per tutte le pagine.

Vedere il campione (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;
}
.

Devo identificare la pagina corrente (posizione) e fare riferimento a un layout di risorse correlato (XML).È possibile?

Ho inoltre bisogno di garantire che tutte le viste di tutte le pagine vengano caricate contemporaneamente solo una volta in cui creo l'attività, consentendo aggiornare i valori in seguito.

Apprezzo qualsiasi aiuto !! Grazie

È stato utile?

Soluzione

Ho trovato una soluzione semplice che funziona per me.Ecco cosa ho fatto.

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

Commenta il ciclo per qui.Basta ottenere il mcontent che useremo come bandiera.

Ora nel tuo onCreateView() lo cambia come segue,

   @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;

    }
.

Questo è tutto ciò che serve.Ora sarai in grado di gonfiare le tue opinioni in base al nome del titolo che abbiamo usato come bandiera.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top