将RemoteView转换为视图

时间:2013-07-03 09:16:30

标签: android android-widget

我正在尝试将RemoteViews实例渲染到Canvas上,就像我使用常规View一样。我用

  

RemoteViews.apply(context,null)

并返回一个FrameLayout,其中所有视图都嵌套并正确测量(位置和大小正确),但在返回视图上使用.draw后,它呈现所有没有值的元素 - TextViews为空,AnalogClock重置在00:00等等。

有什么想法吗?我输了:(

1 个答案:

答案 0 :(得分:1)

不确定问题是否仍然存在。不过这是我对RemoveViews的体验。您似乎无法在返回的视图上调用draw()。您必须将此视图添加到父容器,以使其成为全局视图层次结构的一部分。例如,您有一个Activity,其中包含一个FrameLayout。您的代码将如下所示。

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

现在你应该可以看到测试了。如果你设置了听众,他们也会正常工作。