为什么不支持小部件中的自定义视图?
Why there is not support for custom views in widgets?
我不明白为什么 google 在设计小部件时决定不实现对自定义视图的支持,甚至不支持支持库中捆绑的视图,而是决定依赖 RemoteViews
小部件是用户与应用程序交互的重要组成部分,我敢肯定许多开发人员发现自己由于此限制而被迫更改计划
这样做有什么具体原因吗,可能与表演有关?
例如,现在我想在一个小部件中实现一个回收器视图,但我不能,而且我不明白为什么设计一个回收器视图如此困难并且有这么多样板代码
Widgets are such a big part of users interaction with the app
很少有应用实现应用小部件。
Is there a specific reason why this was made
应用小部件的宿主(例如主页 screen/launcher)和应用小部件的发布者需要就可以使用哪些 UI 元素以及如何配置它们达成一致。
例如,您似乎想使用 RecyclerView
。没关系,但是,您的应用程序不会呈现应用程序小部件。主机是需要呈现应用小部件的 UI 的主机。因此,如果您要使用 RecyclerView
,您的应用程序小部件将在所有缺少 RecyclerView
对应用程序小部件的支持的主机上失败。这包括:
自引入 RecyclerView
以来尚未更新的所有主机(例如,旧设备上的主屏幕)
所有不愿在其应用程序中捆绑 RecyclerView
的主机
所有不愿捆绑任何代码的主机都会导致应用程序小部件呈现支持 RecyclerView
对于成百上千的主机和数万或数十万的应用程序小部件,这种协调变得非常复杂。
另外,它停在哪里?你认为使用 RecyclerView
是合理的,下一个人会认为使用 Facebook 的 Litho 是合理的,而之后的人会认为使用 Android 上发现的一些晦涩的习俗 View
阿森纳是有道理的
确保此协议的简单方法是在框架 类 中使用通用定义,例如 RemoteViews
,因此在主机和应用小部件提供程序之间有保证一致的定义。但是,RemoteViews
很难以向后兼容的方式进行更改,这就是为什么 Google 迄今为止只做过一次(API 级别 11,引入了 [=20=基于 ] 的选项,例如 ListView
)。框架 类 对库一无所知,例如那些提供 RecyclerView
或 Litho.
的库
我不明白为什么 google 在设计小部件时决定不实现对自定义视图的支持,甚至不支持支持库中捆绑的视图,而是决定依赖 RemoteViews
小部件是用户与应用程序交互的重要组成部分,我敢肯定许多开发人员发现自己由于此限制而被迫更改计划
这样做有什么具体原因吗,可能与表演有关?
例如,现在我想在一个小部件中实现一个回收器视图,但我不能,而且我不明白为什么设计一个回收器视图如此困难并且有这么多样板代码
Widgets are such a big part of users interaction with the app
很少有应用实现应用小部件。
Is there a specific reason why this was made
应用小部件的宿主(例如主页 screen/launcher)和应用小部件的发布者需要就可以使用哪些 UI 元素以及如何配置它们达成一致。
例如,您似乎想使用 RecyclerView
。没关系,但是,您的应用程序不会呈现应用程序小部件。主机是需要呈现应用小部件的 UI 的主机。因此,如果您要使用 RecyclerView
,您的应用程序小部件将在所有缺少 RecyclerView
对应用程序小部件的支持的主机上失败。这包括:
自引入
RecyclerView
以来尚未更新的所有主机(例如,旧设备上的主屏幕)所有不愿在其应用程序中捆绑
RecyclerView
的主机所有不愿捆绑任何代码的主机都会导致应用程序小部件呈现支持
RecyclerView
对于成百上千的主机和数万或数十万的应用程序小部件,这种协调变得非常复杂。
另外,它停在哪里?你认为使用 RecyclerView
是合理的,下一个人会认为使用 Facebook 的 Litho 是合理的,而之后的人会认为使用 Android 上发现的一些晦涩的习俗 View
阿森纳是有道理的
确保此协议的简单方法是在框架 类 中使用通用定义,例如 RemoteViews
,因此在主机和应用小部件提供程序之间有保证一致的定义。但是,RemoteViews
很难以向后兼容的方式进行更改,这就是为什么 Google 迄今为止只做过一次(API 级别 11,引入了 [=20=基于 ] 的选项,例如 ListView
)。框架 类 对库一无所知,例如那些提供 RecyclerView
或 Litho.