2013-07-03 33 views
16

Tôi đang cố gắng hiển thị phiên bản RemoteViews trên Canvas, giống như tôi thực hiện với Chế độ xem thông thường. Tôi sử dụngChuyển từ xa sang chế độ xem

RemoteViews.apply (bối cảnh, null)

và nó trả về một FrameLayout với tất cả các quan điểm lồng nhau và đo đúng cách (vị trí và kích thước là đúng,) nhưng sau khi sử dụng .draw trên trả về xem, nó ám tất cả các phần tử không có giá trị - TextViews trống, AnalogClock được đặt lại lúc 00:00 và cứ thế.

Bất kỳ ý tưởng nào? Tôi bị mất: (

+0

Cố gắng bước vào thư viện hệ thống trong trình gỡ rối. –

+0

Vui lòng đăng xml của bạn. Tại thời điểm nào bạn thiết lập các giá trị cho TextViews, AnalogClock, vv? –

+0

@KarimVarela đơn giản AnalogClock, không có giá trị trong xml sang một bên layout_width và layout_height. Khi hiển thị trên thiết bị, nó hiển thị thời gian chính xác, trong Chế độ xem được trả về bằng cách áp dụng(), nó luôn hiển thị 00:00. – gilm

Trả lời

1

Không chắc chắn nếu câu hỏi vẫn còn thực tế.Tuy nhiên đây là trải nghiệm của tôi với RemoveViews. Có vẻ như bạn không thể chỉ gọi draw() trên chế độ xem trả lại. Bạn phải thêm chế độ xem này vào vùng chứa chính làm cho nó là một phần của hệ thống phân cấp cái nhìn toàn cầu. Ví dụ, bạn có một Activity với một đơn FrameLayout trong đó. mã của bạn sẽ trông như thế này.

FrameLayout parent = findViewById(R.id.container); 
View view = RemoteViews.apply(getActivity(), parent); 
parent.addView(view); 

Bây giờ bạn sẽ có thể để xem các bài kiểm tra. Nếu bạn đặt người nghe