我想知道是否有可能防止这种行为,并允许主屏幕小工具监听和响应手势(如滑动)?这对于我的小部件UI设计非常关键。
很抱歉我要将这个回复作为一个单独的答案发布,因为它无法放在评论中。:)
所以说,与小部件的交互非常有限。
问题是,小部件不是“小应用程序”,它们只是小部件。它们存在于真正包含它们的应用程序的世界中,并且依赖于它们。
人们不断要求小部件支持越来越复杂的交互,但每当我们开始这样做时,它都会使得与包含应用程序的交互变得更加复杂,并且似乎可能对整体可用性产生负面影响。
例如,如果小部件可以处理轻扫操作,那么用户现在就非常不确定如何在屏幕之间进行轻扫,因为他们会根据轻扫位置而获得不同的行为。他们甚至可能会陷入一种状态,在这种状态下,由于小部件覆盖了可触摸区域,几乎不可能在屏幕之间轻扫。
因此,我建议将小部件视为窗口,用于查看与您的应用程序相关的关键信息,通过点击小部件跳转到应用程序的详细信息,并可能包含一些额外的按钮来执行关键操作。
此外,从2.0开始,随着新的壁纸主题的推出,您可以使用户从小部件访问的活动界面与主屏幕上相同的壁纸置于顶部。这使得在小部件和主屏幕之间切换感觉更像是在主屏幕内进行交互,而不是与另一个应用程序进行交互。
从 API 级别 11(Android 3.0.x)开始,您可以使用 "android.widget.RemoteViewsService.RemoteViewsFactory" 并为小部件分配要使用的视图(来自文档):
ListView:以垂直滚动列表显示项目的视图。例如,请参见 Gmail 应用程序小部件。
GridView:以二维滚动网格显示项目的视图。例如,请参见书签应用程序小部件。
StackView:叠加卡片视图(类似于卷轴),用户可以向上/向下轻扫前面的卡片以查看上一个/下一个卡片。示例包括 YouTube 和 Books 应用程序小部件。
请参见 http://developer.android.com/guide/topics/appwidgets/index.html 部分“将应用程序小部件与集合一起使用”。
因此,是的 - 如果您使用上述任何一种布局,则您的小部件将接受手势。