首页 > 解决方案 > Android Studio 中的“布局”和“布局资源”一样吗?如何以编程方式创建 XML 布局资源?

问题描述

我真的被这两个概念弄糊涂了。我知道“布局资源”是指一些 XML 格式的文件,例如“activity_main.xml”,并且在 XML 文件中有一个布局。所以“布局”和“布局资源”可能不同,我想。

今天在使用时inflate (int resource, ViewGroup root, boolean attachToRoot),不知道如何获取“资源”(又名 XML 文件)的 ID,因为我只是通过编程为 ListView 创建了一个新布局来显示项目,而我只能获取 ID使用mylayout.setId(View.generateViewId()). 但我不知道“资源”的 ID,因为我从不创建 XML 文件。布局的 ID 是否等于其 XML 文件的 ID?

所以问题来了:当我只以编程方式创建布局时,如何获取它的 XML 文件?我应该创建 XML 文件而不是布局吗?如果是这样,我如何以编程方式制作新的 XML 文件?

标签: javaandroidxml

解决方案


您可以通过以下方式直接访问id您的 xml 文件:int id = R.layout.activity_main

请注意,这id与 xml 文件本身相关联。要访问布局文件中特定视图的 id,请替换layoutid: R.id.my_view_id

例如,如果要充气my_layout.xml,可以传入R.layout.my_layoutresource参数inflate (int resource, ViewGroup root, boolean attachToRoot)

当您在运行时扩展布局时,您正在使用现有的xml 文件来创建布局。Alayout resource是一个layout。布局只是代表您的 UI 的抽象。它没有提到任何具体的东西。

此外,您不能以编程方式(而不应该)“创建”xml 布局以在运行时生成 UI。但是,您可以通过编程方式创建一个视图或一组视图。ViewGroup


推荐阅读