2012-08-05 5 views
7

Tôi đang phát triển một ứng dụng trong Android bằng cách sử dụng Phân đoạn. Tôi có này ba tab:Ngăn chặn đoạn tiếp theo (tab) từ tải trước với ViewPager

User app screenshot

Tôi biết điều đó là không thể để ngăn chặn tải một đoạn trên mỗi bên (trước và sau) như xa như giá trị tối thiểu của setOffScreenPageLimit() là 1 nhưng nó có nghĩa là rằng nếu tôi muốn hiển thị một số ProgressDialog trên phương thức onPreExecute của AsyncTask chạy trong phạm vi Descargas Điều này sẽ gây ra điều đó khi tôi điều hướng đến Capturador mà ProgressDialog sẽ nhất thiết phải tải? Nếu có, tôi không biết làm thế nào để cho người dùng biết rằng tôi đang tải xuống các gói (đó là những gì Descargas làm, để phân tích một số XML).

Cảm ơn bạn trước;)

+1

Câu hỏi này được diễn đạt tuyệt vời. Tôi đang đối mặt với một thử thách tương tự như thế này, nơi mà tôi phải thể hiện 'Dialogs' trong các phân đoạn khác nhau nhưng tôi không thể vì chúng chồng lên nhau. – tolgap

+0

Hãy hy vọng ai đó sẽ giúp chúng tôi. Tôi phải thừa nhận tôi là một chút hoặc nhiều hơn một chút nhầm lẫn với Fragments nhưng tôi không biết làm thế nào để có được vấn đề này cố định. –

+0

Thật là ngu ngốc khi 'setOffScreenPageLimit()' luôn mặc định là 1. – tolgap

Trả lời

4

Nhúng ProgressBar vào đoạn Descargas. Hoặc phủ lên một thanh tiến trình không xác định ở giữa phần mảnh trong khi nó tải.

Hộp thoại thực sự là một phần của hoạt động, sẽ không có nghĩa là nó chỉ áp dụng cho một trong các trang.

Vào cuối ngày tuy nhiên nếu bạn phải nhấn mạnh vào việc sử dụng các hộp thoại, bạn có thể thực hiện một onPageChangeListener

viewPager.setOnPageChangeListener (OnPageChangeListener);

Và bạn có thể kéo hộp thoại thích hợp khi đoạn được chỉ định được chọn và ngược lại khi bạn điều hướng đi.

+0

Cảm ơn bạn đã trả lời. Sau đó, tôi sẽ cố gắng làm một cái gì đó phù hợp và phù hợp với thói quen tốt của lập trình xem xét tôi chỉ học tập. Tôi đoán cách tốt nhất là kiểm soát các sự kiện Đồ họa như Dialogs hoặc Toast trong Activity chính không có trong Fragments. Tôi đánh giá cao nếu ai đó có thể cho tôi ý tưởng. Tôi không muốn bất kỳ ai trong số các bạn làm công việc của tôi mà chỉ là gợi ý hoặc hướng dẫn. –

+0

Trả lời cho bản thân mình và nhờ vào Heo tôi cuối cùng đã triển khai ProgresBar không xác định được xác định trong Bố cục mà tôi ẩn với ProgressBar.setVisibility (View.GONE) nếu đoạn Descargas lấy thành công các gói tôi muốn và vân vân. Tôi hy vọng nó không phải là một giải pháp tồi tàn bởi vì với kiến ​​thức của tôi, mà không phải là nâng cao, tôi thậm chí không thể bắt đầu triển khai tùy chọn OnPageChangeListener. –

+0

Điều đó nghe có vẻ tuyệt vời! Bạn chắc chắn có thể sử dụng hộp thoại từ một đoạn, nhưng một mảnh trong một viewpager là loại khó khăn. Bạn phải lưu ý rằng hộp thoại thực sự có nghĩa là ngăn người dùng thực hiện bất kỳ hành động nào khác. Nhưng nếu họ có những thứ khác họ có thể làm trong hoạt động trong khi chờ đợi, thì tốt nhất là không sử dụng hộp thoại. Đối với tôi, điều đó có nghĩa là progressdialog là một hack nhanh mà thường không nên biến nó thành giải pháp cuối cùng của mọi người. Bạn có thể điều khiển các hộp thoại từ một đoạn, điều đó tốt, chỉ cần biết rằng người dùng chỉ thực sự biết/quan tâm đến hoạt động đó. –