我正在尝试将 RemoteViews 实例渲染到 Canvas 上,就像使用常规视图一样。我用
RemoteViews.apply(上下文,空)
它返回一个 FrameLayout,其中所有视图都嵌套并正确测量(位置和大小正确),但是在返回的视图上使用 .draw 后,它呈现所有没有值的元素——TextViews 为空,AnalogClock 重置为 00: 00 等。
有任何想法吗?我迷路了 :(
我正在尝试将 RemoteViews 实例渲染到 Canvas 上,就像使用常规视图一样。我用
RemoteViews.apply(上下文,空)
它返回一个 FrameLayout,其中所有视图都嵌套并正确测量(位置和大小正确),但是在返回的视图上使用 .draw 后,它呈现所有没有值的元素——TextViews 为空,AnalogClock 重置为 00: 00 等。
有任何想法吗?我迷路了 :(
不确定问题是否仍然存在。尽管如此,这是我对 RemoveViews 的体验。看来您不能只调用draw()
返回的视图。您必须将此视图添加到父容器以使其成为全局视图层次结构的一部分。例如,你有Activity
一个单曲FrameLayout
。您的代码将如下所示。
FrameLayout parent = findViewById(R.id.container);
View view = RemoteViews.apply(getActivity(), parent);
parent.addView(view);
现在您应该可以看到测试了。如果您设置了侦听器,它们也将正常工作。