2013-07-03 52 views
16

我想將一個RemoteViews實例渲染到畫布上,就像我使用常規視圖一樣。我用將RemoteView轉換爲視圖

RemoteViews.apply(背景下,空)

,它返回一個與FrameLayout裏所有的意見和嵌套的正確測量(位置和大小是正確的),但使用.draw在後返回的視圖,它呈現所有沒有值的元素 - TextViews爲空,AnalogClock在00:00等重置。

任何想法?我迷路了:(

+0

嘗試在調試器中進入系統庫。 –

+0

請張貼您的xml。你在什麼時候設置TextViews,AnalogClock等的值? –

+0

@KarimVarela簡單的AnalogClock,xml中的值不在layout_width和layout_height中。在設備上渲染時,它會顯示正確的時間,在apply()返回的View中,它始終顯示00:00。 – gilm

回答

1

不知道這個問題是否仍然存在,不過這裏是我對RemoveViews的體驗,看起來你不能在返回的視圖上調用draw(),你必須將這個視圖添加到父容器中使全局視圖層次結構的一部分。例如,你必須在一個單一FrameLayoutActivity。您的代碼看起來就像這樣。

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

現在你應該可以看到測試。如果設置監聽器,他們也會正常工作。