2010-03-10 30 views
6

Tôi chạy vào một tình huống thú vị với việc sử dụng một ProgressBar trong một Widget App ... Các tài liệu (http://developer.android.com/guide/topics/appwidgets/index.html) nói rằng ProgressBar là một lớp phụ tùng hỗ trợ ...ProgressBar trong một AppWidget

Tôi không có vấn đề nhận được ProgressBar để hiển thị trong App Widget của tôi nhưng vấn đề là tôi muốn nó chỉ được hiển thị như là phản hồi trực quan cho người dùng khi xử lý nền đang xảy ra.

Trên ImageViews Tôi làm điều này thông qua RemoteViews.setViewVisibility() và mọi thứ hoạt động tốt. Tuy nhiên, với ProgressBar tôi nhận được một ngoại lệ nói rằng ProgressBar không thể sử dụng phương pháp này.

Đây có phải là chủ ý hay đây là lỗi không? Có cách nào để giải quyết vấn đề này không?

Trả lời

15

Ý tưởng đơn giản hơn, là đặt thanh tiến trình bên trong một số vùng chứa (nói bố cục tuyến tính) và hiển thị/ẩn vùng chứa.

+0

Tôi thực sự vừa chuyển sang sử dụng phương pháp này trong bản cập nhật giao diện người dùng gần đây của ứng dụng ... – Justin

10

Nó có thể là một lỗi. Có một chú thích cụ thể (@RemotableViewMethod) bạn cần trong mã nguồn Java của chính Android để đánh dấu một phương thức có sẵn thông qua RemoteViews. View có điều này cho setVisibility(), nhưng ProgressBar ghi đè phương thức đó và không có chú thích trên ấn bản của riêng nó. Nếu @RemotableViewMethod không được kế thừa và ghi đè "hoàn tác" chú thích, điều đó sẽ giải thích được triệu chứng bạn thấy.

Giải pháp thay thế là sử dụng hai bố cục ứng dụng và chọn tùy chọn bạn muốn (có hoặc không có ProgressBar) khi bạn tạo đối tượng RemoteViews khi cập nhật tiện ích ứng dụng của mình.

Tôi sẽ ghi chú để cố gắng sao chép điều này và nếu tôi thấy cùng một điều, tôi sẽ đăng sự cố lên số này trên Android issue tracker.

+0

Cảm ơn thông tin và giải pháp thay thế! Giống như một FYI, tôi hiện đang biên soạn dựa trên SDK 1.5 để có thể đã được sửa trong phiên bản sau. – Justin

+0

Có lẽ không, vì tôi đang xem mã hiện tại hơn (thông qua Google Code Search) khi viết câu trả lời. – CommonsWare

+0

Nó vẫn không hoạt động từ API cấp 8 trở lên. Nhưng mẹo sử dụng bố cục bổ sung đang hoạt động :) –

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