我有一个具有免费和付费风格的应用程序。我开始为付费版本添加其他功能。到目前为止,味道差异已经通过构建gradle中的布尔值或flavor文件夹中的几个不同布局来处理。由于广告代码嵌入在布局xml中,因此存在到目前为止的布局差异。展望其中一些将具有独特的项目/内容,但大多数新的东西将有自己的布局。
几乎所有附加功能都将驻留在付费风格的特定类中。但是,我对我的一些活动类感到有点困惑,这些活动类以用户选择菜单开头,并且适用于两种口味共同的所有意图。例如,似乎没有办法使用一个单击侦听器,它在布局的一种风格中引用R.id而不是另一种风格。因此,活动本身必须保持两个版本。
维护两种类型的活动代码只是为了处理一些非常见的行似乎过于庞大和繁琐。我认为处理我的特定实例的最佳方法是确保两个布局都具有活动所需的所有R.id并隐藏未使用的布局。不太理想,但比维护两个版本的活动更不麻烦。
一般来说,有更好的方法来解决这个问题吗?