2013-09-25 27 views
6

Tôi cần thêm nhiều lượt xem trong một vòng lặp, trong khi đoạn này thực hiện điều đó, ứng dụng cũng sẽ có ngăn điều hướng và thanh tác vụ nơi người dùng có thể thực hiện.android addView trong chủ đề nền

vì vậy tôi muốn quá trình này không làm) làm chậm ứng dụng bằng cách chặn người dùng, b) tốt nhất là thêm chế độ xem trong chuỗi nền.

Sự tiến thoái lưỡng nan là tôi nghĩ android không thích lượt xem được thêm vào trong chuỗi không phải là giao diện người dùng, vì vậy có cách nào tốt nhất cho việc này không? Tôi dự định hiển thị đối tượng thanh tiến trình trong chế độ xem của đoạn trong khi phần còn lại của chế độ xem được tạo với addView và các tính toán được liên kết

+0

Bạn có thể giải thích về những gì bạn đang làm không? nghĩa là bạn đang thêm loại lượt xem nào? Tôi đoán là một số biến thể adapterview sẽ làm việc. – JoeyG

+2

"có cách nào tốt nhất cho việc này không?" - không có "nhiều lượt xem" ngay từ đầu. – CommonsWare

Trả lời

17

Thay vì thêm chế độ xem trên một chủ đề nền, bạn có thể gửi bài Runnables trên chuỗi giao diện người dùng. Mã dưới đây là một phiên bản được đơn giản hóa cao của kỹ thuật đó nhưng nó tương tự như cách nó được thực hiện trong ứng dụng Trình khởi chạy của Android:

private void createAndAddViews(int count} { 
    for (int i = 0; i < count; i++) { 
     // create new views and add them 
    } 
} 

Runnable r = new Runnable() { 
    public void run() { 
     createAndAddViews(4); // add 4 views 
     if (mMoreViewsToAdd) mTopLevelView.post(this); 
    } 
}; 

mTopLevelView.post(r); 
+2

Tôi không hiểu. . . Tôi có 5 LinearLayouts để cư trú với rất nhiều mặt hàng .. làm thế nào để tôi thêm xem mà sẽ không làm cho ProgressBar của tôi whic có thể nhìn thấy trong thời gian trước khi runnable được hoàn thành để không tụt hậu. – Sheychan