从服务器加载 XML 布局 (android)

Posted

技术标签:

【中文标题】从服务器加载 XML 布局 (android)【英文标题】:Load XML layout from server (android) 【发布时间】:2014-04-09 23:36:07 【问题描述】:

我对此问题进行了大量研究,但没有得到我想要的答案。 所以我确实有一个应用程序从服务器获取字符串。该系列字符串为 XML 格式。

这是我将从服务器获取的示例(您可以看到它是一个布局):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    android:orientation="vertical" >

    <TextView
        android:layout_
        android:layout_
        android:text="@string/number_ref" />
    <EditText 
        android:id="@+id/etTxtNumber"
        android:layout_
        android:layout_ />
     <TextView
        android:layout_
        android:layout_
        android:text="@string/subject_ref" />
    <EditText 
        android:id="@+id/etTxtSubject"
        android:layout_
        android:layout_ />
    <TextView
        android:layout_
        android:layout_
        android:text="@string/body_ref" />
    <EditText 
        android:id="@+id/etTxtBody"
        android:layout_
        android:layout_ />
    <LinearLayout 
          android:layout_
          android:layout_
          android:orientation="horizontal" >
          <Button 
                android:id="@+id/btnTxtSave"
                android:layout_
                android:layout_
                android:text="@string/save_ref"/>
          <Button 
                android:id="@+id/btnTxtSend"
                android:layout_
                android:layout_
                android:text="@string/send_ref"/>
          <Button 
                android:id="@+id/btnTxtClose"
                android:layout_
                android:layout_
                android:text="@string/close_ref"/>
    </LinearLayout>

</LinearLayout>

这将根据将从服务器上传的 xml 文件进行更改。我的问题是如何将这些字符串系列实现到布局中并作为活动的布局加载。我正在考虑将它保存在一个 xml 文件中到设备的 sdcard 并将其加载为布局,但我想在运行它之后重新编译代码是不可能的。有什么建议?谢谢。

【问题讨论】:

【参考方案1】:

正如Android documentation 中所解释的,布局xml 文件在运行时不使用——它们在编译时被编译为二进制代码。因此,您不能直接将 xml 作为 Layout 加载。

您必须编写读取 xml、解释它并使用 Android api 方法创建相应视图的代码。

【讨论】:

有没有它的库?【参考方案2】:

常见用例 如果您需要 A/B 测试不同的 UI 设计,而无需重新上传 APK。 如果您的应用的 UI 根据不同的用户或场景动态变化。 如果您需要快速、实时地部署 UI 修复。 json2view可以帮到你。

【讨论】:

【参考方案3】:

我认为现在可以使用 android 中的动态布局来完成。

https://www.javacodegeeks.com/2012/09/android-dynamic-and-xml-layout.html#:~:text=Android%20activity%20contains%20various%20user,activity%20in%20two%20different%20ways.&text=Basically%2C%20Layout%20file%20is%20xml,file%20present%20in%20res%2Flayout.

https://medium.com/mindorks/creating-dynamic-layouts-in-android-d4008b72f2d

【讨论】:

以上是关于从服务器加载 XML 布局 (android)的主要内容,如果未能解决你的问题,请参考以下文章

Android View 动态加载不同xml布局文件

如何实现在动态布局中添加更多视图在android中实现滚动视图

Android之使用Assets目录中的xml布局网页音乐等资源

android listview怎么加载自定义布局,还必须是在代码里面写

从android框架覆盖布局xml

为啥在eclipes为创建一个android布局文件在R中没有自动生成