2015-05-06 15 views
13

Có cách nào dễ dàng để chuyển đổi giữa chế độ xem được hiển thị trong ViewSwitcher trong bản xem trước của Android Studio hay là cách duy nhất để hoán đổi XML cho từng chế độ xem phụ tại một thời điểm?Xem trước ViewSwitcher trong AndroidStudio

+0

Có lý do đặc biệt nào khiến bạn sử dụng ViewSwitcher không? Nó rất hạn chế. Sử dụng ViewPager thay vì – auval

+1

@auval, tôi chỉ sử dụng ViewSwitcher để hiển thị một chỉ báo tải trong khi phần còn lại của hoạt động đang tải, vì vậy tôi không cần bất cứ điều gì rất phức tạp. Có vẻ như ViewPager sẽ quá mức cần thiết. – PaulrBear

+0

ViewSwitcher là quá mức cần thiết để hiển thị chỉ báo tải. Sử dụng một cái nhìn đơn giản cho rằng – auval

Trả lời

5

Thật không may, không có thuộc tính XML hoặc bất kỳ tùy chọn nào trên Android Studio có thể giúp bạn xác định chế độ xem được hiển thị.

Câu hỏi tương tự cho số ViewFlipper được yêu cầu here (cả hai đều là lớp con trực tiếp của ViewAnimator).

Tuy nhiên, khi và chỉ khi quan điểm của bạn là lớn như màn hình, bạn có thể sử dụng thẻ include, ví dụ:

<ViewSwitcher 
    android:id="@+id/myViewSwitcher" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <include 
     layout="@layout/first_view"> 
    </include> 

    <include 
     layout="@layout/second_view"> 
    </include> 

</ViewSwitcher> 

Sau đó, bạn có thể nhìn thấy bố trí của bạn trong một tập tin XML riêng biệt.

+0

Vâng, đây là một thực hành tốt – MrLeblond

0

ViewPager có thể dễ dàng giải quyết vấn đề của bạn.

ViewPager (có thể giữ nhiều chế độ xem). ViewPager là loại Array Container cho các đối tượng View. Bạn có thể xoay vòng ViewPager (giống như bạn xoay vòng mảng) hoặc các kỹ thuật khác để hoán đổi các khung nhìn bên trong. Và, bạn có thể tạo từng khung nhìn bên trong của mình dựa trên DP Nhà máy, do đó sẽ xảy ra ít xử lý hơn (chia sẻ tài nguyên chung).

Họ đã đề cập đến các chế độ xem vuốt ở đây (Lưu ý: bạn chỉ cần kỹ thuật vuốt chế độ xem riêng nếu bạn không muốn sử dụng xoay ViewPager mặc định).

Tạo swipes: https://developer.android.com/training/implementing-navigation/lateral.html

ViewPager cho slide màn hình:https://developer.android.com/training/animation/screen-slide.html

1

Trước hết nếu bạn đang nghĩ đến sử dụng ViewSwitcher, chỉ cho thấy ProgressDialog sau đó bạn không phải làm việc đó một cách trong đó nó nên được. ViewSwitcher thường được sử dụng để thay đổi bố cục của Activity. Trong trường hợp của bạn ProgressDialog không phải là View trong số Activity của bạn thay vì đó chỉ là trợ giúp nhỏ cho biết một số quy trình đang hoạt động. Vì vậy, trong ngắn ViewSwitcher nên được sử dụng một nơi nào đó mà bạn muốn thay đổi màn hình hoàn chỉnh của Activity.

Trong trường hợp của bạn, bạn có thể chia bố cục thành các tệp bố cục nhỏ hơn và nhóm chúng bằng cách sử dụng merge hoặc include.

Tạo tệp riêng cho tất cả các màn hình khác nhau sẽ xác định giao diện người dùng của Activity và nhóm chúng bằng cách sử dụng include.

Đối với một ví dụ chúng ta có thể tạo nhỏ App cho Giới thiệu điều sử dụng ViewSwitcher -

  1. Đầu tiên Screen - my_product.xml - bố trí này sẽ xác định điều gì đó về sản phẩm.

  2. Màn hình thứ hai - about_us.xml - bố cục này sẽ mô tả về công ty của bạn.

  3. Màn hình thứ ba - thank_you.xml - để nói lời cảm ơn đến người dùng của bạn.

Nhóm chúng trong bất kỳ vùng chứa nào View.

<ViewSwitcher 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <include 
     layout="@layout/my_product"/> 

    <include 
     layout="@layout/about_us"/> 

    <include 
     layout="@layout/thank_you"/> 

</ViewSwitcher> 
+0

Một ViewSwitcher chỉ có thể có hai chế độ xem con. https://developer.android.com/reference/android/widget/ViewSwitcher.html – Incinerator

+0

@Incinerator Tôi không nghĩ vậy, bạn có bất kỳ tham chiếu nào về điều đó không? – Rahul

Các vấn đề liên quan