我正在编写一个将托管小部件的应用程序。该应用程序具有自定义 View (这可能是问题的根源)。我像这样获得 AppWidgetHostView
private AppWidgetHostView widget;
...
AppWidgetProviderInfo appWidgetInfo = mAppWidgetManager.getAppWidgetInfo(appWidgetId);
widget = mAppWidgetHost.createView(this, appWidgetId, appWidgetInfo);
widget.setAppWidget(appWidgetId, appWidgetInfo);
mView.addWidget(widget, appWidgetInfo);
mView.addWidget() 基本上只是记住这个 AppWidgetHostView 实例,然后 mView 将它直接绘制到 Canvas 上。视觉上一切都很好 - 我可以看到实际的小部件。但问题在于对 UI 事件使用react。请告知需要在父 View 中做什么才能正确触发 onClick() 等小部件中的处理程序。
笔记:
请指教在哪里看。谢谢
最佳答案
如果您的小部件不属于属于系统的真实 ViewGroup,则您需要对触摸事件执行 setLocation() 以将它们与小部件应在的位置对齐。如果不这样做,用于查找哪个 View 被触摸的 View 代码将不起作用,因为 X 和 Y 值将是错误的(它们应该相对于父 View ,而不是绝对的)。
关于android - 具有自定义 View 的小部件宿主应用程序 - 应用小部件中未触发 onClick,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2427122/