2012-10-25 13 views
16

Czy można mieć dwa różne układy dla różnych przypadków, w tej samej działalności, czy muszę używać intent wywołać kolejną activity z innym układemdwa różne układy na jednej czynności

+0

Jakie są przypadki? – Egor

+0

@Ankush Jest to możliwe, ale jest zbyt długa i najlepszym rozwiązaniem dla różnych UI jest inne działanie. –

Odpowiedz

26

Tak, to możliwe. Możesz użyć jak największej liczby układów dla pojedynczego działania, ale oczywiście nie jednocześnie. Można użyć coś takiego:

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

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

i tak dalej ...

+0

Co zrobić, jeśli mam adapter tablicowy, który zapełnia układ, który jest domyślnym układem, jak by to działało? – Si8

+0

Powinieneś iść z fragmentem raczej ustawiając inny układ dla różnych przypadków. –

3

Proponuję za pomocą Fragments

Będzie to pomocne, jeśli można powiedzieć coś więcej, aby znaleźć inne rozwiązania, jeśli nie w porządku z fragmentami

Edytuj

korzystać z bibliotek android do podtrzymywania lo Wersje systemów Wer

Edit2

jeśli chcesz korzystać z dwóch xml można połączyć dwa xml do jednego i użyć go

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

ta jest również przydatna podczas korzystania układ znowu w wielu przypadkach

1

Oto najlepsze rozwiązanie dla ciebie ViewFlipper.
ViewFlipper to prosty ViewAnimator, który będzie animował między dwoma lub więcej widokami, które zostały do ​​niego dodane. Wyświetlane jest tylko jedno dziecko na raz. Na żądanie może automatycznie przełączać się między poszczególnymi dziećmi w regularnych odstępach czasu. Here jest dobrym przykładem viewflipper.
Możesz również spojrzeć na this.
EDIT: - One StackoverFlow answer for you

10

Tak jest to również możliwe w przypadku przełącznika

Próbowałem już ten kod ....

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; 
    } 
Powiązane problemy