16
我想將一個RemoteViews實例渲染到畫布上,就像我使用常規視圖一樣。我用將RemoteView轉換爲視圖
RemoteViews.apply(背景下,空)
,它返回一個與FrameLayout裏所有的意見和嵌套的正確測量(位置和大小是正確的),但使用.draw在後返回的視圖,它呈現所有沒有值的元素 - TextViews爲空,AnalogClock在00:00等重置。
任何想法?我迷路了:(
我想將一個RemoteViews實例渲染到畫布上,就像我使用常規視圖一樣。我用將RemoteView轉換爲視圖
RemoteViews.apply(背景下,空)
,它返回一個與FrameLayout裏所有的意見和嵌套的正確測量(位置和大小是正確的),但使用.draw在後返回的視圖,它呈現所有沒有值的元素 - TextViews爲空,AnalogClock在00:00等重置。
任何想法?我迷路了:(
不知道這個問題是否仍然存在,不過這裏是我對RemoveViews的體驗,看起來你不能在返回的視圖上調用draw()
,你必須將這個視圖添加到父容器中使全局視圖層次結構的一部分。例如,你必須在一個單一FrameLayout
的Activity
。您的代碼看起來就像這樣。
FrameLayout parent = findViewById(R.id.container);
View view = RemoteViews.apply(getActivity(), parent);
parent.addView(view);
現在你應該可以看到測試。如果設置監聽器,他們也會正常工作。
嘗試在調試器中進入系統庫。 –
請張貼您的xml。你在什麼時候設置TextViews,AnalogClock等的值? –
@KarimVarela簡單的AnalogClock,xml中的值不在layout_width和layout_height中。在設備上渲染時,它會顯示正確的時間,在apply()返回的View中,它始終顯示00:00。 – gilm