当条件多个布局应用于单个活动时管理单个数据绑定对象

Posted

技术标签:

【中文标题】当条件多个布局应用于单个活动时管理单个数据绑定对象【英文标题】:Manage single Databinding object when conditional multiple layouts apply to single activity 【发布时间】:2021-10-15 13:25:56 【问题描述】:

现在我正在做一个项目,我必须在单个活动中使用多个布局。让我用例子来描述

例如有一个名为 "DashboardActivity" 的活动,我必须为此活动创建 4 个布局。

如果服务器有 flowId=1,我必须应用 activity_dashboard_layout_flow_one。与 flowId=2/3/4 相同。我对所有流程都有不同的布局,例如 activity_dashboard_layout_flow_twoactivity_dashboard_layout_flow_threeactivity_dashboard_layout_flow_four

现在我在我的项目中使用 databinding 如此简单,所有布局文件都会生成绑定文件。所以我的活动中有不同的绑定对象。但我只想使用和管理一个绑定对象来访问 XML 文件中的视图。

所以请建议我在这种情况下如何处理数据绑定。使用数据绑定在 kotlin 中执行此操作的有效方法是什么

谢谢

【问题讨论】:

我建议将它们移动到片段中,并在获得请求响应后将所需的片段推送到活动中。这样您就可以在每个片段上单独处理每个布局/绑定,并且不会有任何混淆。 @Brandon 如果我这样做,我必须在所有这些片段中执行相同的功能。在我的情况下,这里的功能在单个活动中是相同的。功能意味着 api 调用、视图点击等等。 【参考方案1】:

在做了一些研发之后,我做了一个将绑定对象设置为 Any 类型的解决方案。设置根布局并为所有从可用 4 绑定返回特定视图的视图扩展功能的主题明智条件。

今天我发现了与我的解决方案类似的问题,但这个给定的解决方案比我的解决方案更好。查看以下链接

View Binding with 2 possible layouts, assign binding variable to 2 generated binding classes

【讨论】:

以上是关于当条件多个布局应用于单个活动时管理单个数据绑定对象的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 中使用具有多个布局的单个片段

将多个类的数据绑定到单个列表视图/xamarin 表单

Android:创建具有多个应用程序活动的单个任务(Lauchmode 问题)

如何在 FAB 按钮单击时将数据从多个片段发送到单个活动

单个 Activity 中的多个 Radio 组

WPF将单个文本框绑定到集合对象或数组中的元素