2012-10-25 12 views
16

E 'possibile avere due diversi layout per diversi casi nella stessa attività o devo usare intent per chiamare un altro activity con un layout diversodue diversi layout per un'attività

+0

Quali sono i casi? – Egor

+0

@Ankush È possibile ma è troppo lungo e la diversa attività per l'interfaccia utente diversa è la soluzione migliore. –

risposta

26

Sì, è possibile. È possibile utilizzare il maggior numero possibile di layout per una singola attività, ma ovviamente non contemporaneamente. È possibile utilizzare qualcosa di simile:

if (Case_A) 
    setContentView(R.layout.layout1); 

else if (Case_B) 
    setContentView(R.layout.layout2); 

e così via ...

+0

Cosa succede se ho un adattatore di array che sta compilando un layout che è il layout predefinito, come funzionerebbe? – Si8

+0

Si dovrebbe andare con frammento piuttosto impostare layout diversi per il caso diverso. –

3

io suggerisco di usare Fragments

Sarà utile se si può spiegare di più per trovare altre soluzioni se il tuo non ok con frammenti

Modifica

Utilizzare librerie di supporto Android per sostenere lo versioni Wer OS

Edit2

se si desidera utilizzare due xml è possibile combinare due xml in uno e usarlo

<include layout="@layout/YOURXMLNAME1" /> 
<include layout="@layout/YOURXMLNAME2" /> 

Questo è utile anche durante l'utilizzo di layout di nuovo in molti casi

1

Ecco la soluzione migliore per voi ViewFlipper.
ViewFlipper è un semplice ViewAnimator che si animerà tra due o più viste che sono state aggiunte ad esso. Viene mostrato un solo bambino alla volta. Se richiesto, può automaticamente capovolgere tra ogni bambino a intervalli regolari. Here è un buon esempio di viewflipper.
Puoi anche guardare this.
EDIT: - One StackoverFlow answer for you

10

Sì questo è possibile anche con interruttore caso

Ho già provato questo codice ....

switch (condition) { 
     case 1: 
    setContentView(R.layout.layout1); 
       break; 
     case 2: 
    setContentView(R.layout.layout2); 
       break; 
     case 3: 
    setContentView(R.layout.layout3); 
       break; 

     default: 
    setContentView(R.layout.main); 
       break; 
    } 
Problemi correlati