Android 动态视图/布局 - 服务器端视图/布局生成

Posted

技术标签:

【中文标题】Android 动态视图/布局 - 服务器端视图/布局生成【英文标题】:Android dynamic view/layout - server side view/layout generation 【发布时间】:2014-04-03 09:56:50 【问题描述】:

我正在开发跨平台应用程序,其中常见代码(如业务逻辑和其他常见内容)位于公共库中。我需要用 UI(用户界面)解决问题。

服务器端通信完全用通用代码实现。服务器正在向应用程序发送数据,并根据这些数据更新 UI。

这个想法是在通用代码中生成视图,这些生成的视图在设备屏幕上更新。

android 上,您可以在存储在资源文件夹中的 XML 布局文件中定义视图。 在 Windows Phone 8 上,您有 XAML 定义的视图。 我猜在 Mac/ios 上它是某种 XML,但我在 Apple 平台上没有太多经验。

所以每个平台都支持类似 XML 的视图定义。 我的想法是使用从输入 XML 数据到 XML/XAML 视图定义的 XSLT 转换来生成 UI。 I know how to do it in Windows Phone ,但我不知道如何为Android平台做。

假设我需要在服务器端生成 Android Activity 布局并将此 Activity 显示在 Android 设备屏幕上

有什么想法吗?这可能吗?

注意: 我知道如何在 Android 上以编程方式动态创建 android 视图,但我需要在服务器端以某种方式生成 Resource\layout\main.axml 并在运行时在 Android 上应用这个 main.xaml 文件。

【问题讨论】:

theory 中,您可以生成一个 Android xml 布局并下载并将其保存在某处,然后在代码中分配它。问题是 你不能在 res/layout 文件夹中写入 - 它必须在哪里 是的,这就是重点。我需要以某种方式加载那个 xml 棘手的部分是找到从任意位置加载 xml 的 hack - 包括内存。 【参考方案1】:

在 Android 上没有办法做到这一点。不支持。在每个平台上编写我自己的解析器对我来说不是解决方案。

理论解决方案:在跨平台Qt 5 framework 上构建您的应用程序。在 QML 设计器中设计您的视图并在您的应用程序中使用它。它应该在所有平台上正确呈现。您还可以随时从服务器获取/更新您的 QML,使您的 UI 保持最新。

【讨论】:

【参考方案2】:

有可能,

客户端需求

    需要创建一个框架应用程序,该应用程序将从服务器获取 xml。(所有平台) 解析xml并识别标签并创建动态UI 例如:<TextArea name="textField1" value="My World" size="0,0,30,50"> 在活动/窗口中显示 UI

(注)我们可以在Android、IOS中创建动态UI。

服务器端需求

    用于创建xml的拖放UI创建工具。

    需要创建一个客户端应用程序应该理解的通用 xml。

    创建一个 Web 服务以将 xml 传递给客户端。

【讨论】:

这个问题是关于客户端点 2-4。如何在不以编程方式创建 UI 的情况下做到这一点?我知道通过解析“框架”返回的 axml 文件来通过代码和构建布局的可能性。但我想做的就像 SetContentView 函数对资源中的 axml 文件所做的那样。 @Ludwo 你解决了问题还是有理论上的解决方案? @RmK 我以理论上的方式回答了我自己的问题 :)

以上是关于Android 动态视图/布局 - 服务器端视图/布局生成的主要内容,如果未能解决你的问题,请参考以下文章

Android:创建自定义视图并将其动态添加到布局中

Android:在嵌套布局中动态添加视图

Android:SectionIndexer 的自定义视图布局和动态禁用 SectionIndexer

处理点击动态创建布局android的子布局

动态添加一个视图及其布局属性(要掌握)

如何在 recyclerview 适配器中将动态视图添加到 android 布局