2012-10-25 31 views
16

Có thể có hai bố cục khác nhau cho các trường hợp khác nhau trong cùng một hoạt động hay tôi phải sử dụng intent gọi activity khác với một cách bố trí khác nhauhai bố trí khác nhau cho một hoạt động

+0

các trường hợp là gì? – Egor

+0

@Ankush Có thể nhưng quá dài và hoạt động khác nhau cho giao diện người dùng khác nhau là giải pháp tốt nhất. –

Trả lời

26

Có thể của nó. Bạn có thể sử dụng càng nhiều bố cục càng tốt cho một hoạt động đơn lẻ nhưng rõ ràng không đồng thời. Bạn có thể sử dụng một cái gì đó như:

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

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

và vân vân ...

+0

Điều gì sẽ xảy ra nếu tôi có bộ điều hợp mảng có bố trí bố cục là bố cục mặc định, cách thức hoạt động? – Si8

+0

Bạn nên đi với mảnh thay vì thiết lập bố trí khác nhau cho các trường hợp khác nhau. –

3

tôi đề nghị sử dụng Fragments

Nó sẽ rất hữu ích nếu bạn có thể giải thích thêm để tìm giải pháp khác, nếu bạn không ok với mảnh

Sửa

Sử dụng thư viện hỗ trợ android hỗ trợ lo wer phiên bản hệ điều hành

Edit2

nếu bạn muốn sử dụng hai xml bạn có thể kết hợp hai xml thành một và sử dụng nó

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

này cũng rất hữu ích khi sử dụng bố trí một lần nữa trong nhiều trường hợp

1

Đây là giải pháp tốt nhất cho bạn ViewFlipper.
ViewFlipper là một ViewAnimator đơn giản sẽ sinh động giữa hai hoặc nhiều chế độ xem đã được thêm vào nó. Chỉ có một đứa trẻ được hiển thị tại một thời điểm. Nếu được yêu cầu, có thể tự động lật giữa mỗi đứa trẻ một cách đều đặn. Here là ví dụ điển hình về trình xem.
Bạn cũng có thể xem this.
EDIT: - One StackoverFlow answer for you

10

Có điều này cũng có thể với trường hợp chuyển đổi

Tôi đã thử mã này ....

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; 
    } 
Các vấn đề liên quan