在Android应用程序中动态添加新的UI布局而不更新apk文件

时间:2015-03-12 09:24:44

标签: android android-layout android-activity android-fragments

如何在已安装的应用中添加新的布局,而无需在Play商店中更新apk

要求是:
我们的客户将有一个Android应用程序,管理员将有一个基于Web的后端。

管理员将获得从管理面板添加新UI模板的选项,当客户导航到该特定活动时,预计会在应用程序上更改该模板。

这个想法是,管理员已经更改了产品列表活动的模板,之后当客户访问产品列表活动时,我们将通过 HTTP调用<获取新的ui模板(由admin设置) / strong>从服务器以某种方式在活动上呈现它。

我们如何实现这一目标?

PS:我们正在寻找一种没有任何网络视图的完全原生的解决方案。

1 个答案:

答案 0 :(得分:1)

无法对构建过程中无法使用的layouot XML进行夸大。原因是Android做了一些预处理,而LayoutInflator依赖于预处理的XML。以下是文档中的注释: LayoutInflater.inflate()

  

重要出于性能原因,查看通胀严重依赖于在构建时完成的XML文件的预处理。因此,目前无法在运行时对普通XML文件使用带有XmlPullParser的LayoutInflater。

在这里你可以找到一个很好的讨论:XML parser for dynamic layout (dynamically loaded skins)

但您仍然可以为它创建自己的文件格式和解析器。此解决方案的复杂性取决于您需要多少自定义布局。如果只是重新排序或添加一些Views,它仍然可行。但是,如果您需要Android布局提供的所有功能,我认为您无法实现它。实际上,您需要实现自己的LayoutInflator并重复Google多年来所做的一切......