【问题标题】:Parse layout not from resources and set it in Runtime不是从资源中解析布局并将其设置在运行时
【发布时间】:2015-03-12 18:15:12
【问题描述】:

我有件事要考虑,但找不到解决方案。正在从服务器接收新的布局文件。 我遇到了 Parser 无法解析所有这些 android 属性以在下一步中膨胀视图的问题。我们可以在服务器端更改文件格式以使其成为属性,但如何解析并正确设置仍然是一个问题。 有没有人有任何想法或建议如何做到这一点?提前致谢。

【问题讨论】:

  • 您不能将从服务器下载的文件存储在资产目录中-资产是只读的。
  • @GabeSechan,啊,当然,我说的是例子。我现在改正,谢谢。

标签: android android-layout parsing layout-inflater android-xmlpullparser


【解决方案1】:

你不能。两个问题。

1)您无法解析一般的 xml 文件并从中进行布局。来自 LayoutInflater.inflate() 上的文档“重要的是,出于性能原因,视图膨胀在很大程度上依赖于在构建时完成的 XML 文件的预处理。因此,目前无法在纯 XML 上使用带有 XmlPullParser 的 LayoutInflater运行时的文件。”

2)您不能保存到资产。资产是只读的。当然你也可以改用文件系统。

你可以得到你想要的,但你必须从头开始为你的布局文件编写自己的解析器。强烈不推荐。

【讨论】:

  • 好答案,谢谢!但是好吧,如果我收到 UI 元素的属性,然后生成视图并将这些元素应用于创建的视图?文件示例:<button name="btn1"> <background>blue</background><text>My text</text> </button> ?如果这样做呢?
  • 你可以这样做。您必须完全手动完成,这会很慢。我怀疑你会发现它的用户体验很糟糕,如果你真的想这样做,我建议你只下载 HTML 进行显示。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-04
  • 2015-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多