【问题标题】:Equivalent of transclusion in AndroidAndroid中的transclusion等价物
【发布时间】:2019-07-24 14:51:47
【问题描述】:

作为一名学习 Android 的 Angular 开发人员,我发现我缺少嵌入。

假设我有一个布局,其中包含应用程序的一种结构,类似于

<LinearLayout
    ...
    >

    <!--Header-->
    <TextView
        ...
        />

    <!--Content-->
    <include layout="foo"/>

    <!--Footer-->
    <TextView
        ...
        />

</LinearLayout>

我不想将此结构复制粘贴到我的应用中的每个布局中,因为它会快速增长,修改起来很麻烦。

Android 解决这个问题的方法是什么?

【问题讨论】:

  • 使用&lt;include&gt;,就像你已经在做的那样。或者,创建一个自定义 ViewGroup 以从单个布局资源中表示此结构。或者,如果这代表一个屏幕,则有一个 Fragment 使用来自单个布局资源的此结构。
  • &lt;include layout="foo"/&gt;你已经在使用它了

标签: android


【解决方案1】:

将您的通用布局保存在一个文件中,例如 common_ui.xml,然后您可以使用包含标记将其包含在您想要的任何其他布局中。

<include layout="@layout/common_ui"/>

还有 merge 标签可以在您的 common_ui 只有视图时使用,即您不想将 ViewGroups 添加为父级,那么您应该使用 merge 来保持视图层次结构扁平化。 Check this answer to understand

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-22
    • 1970-01-01
    • 2012-03-17
    • 2014-07-28
    • 1970-01-01
    • 2014-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多