Android 如何在不使用嵌套布局的情况下对多个视图进行分组

Android 如何在不使用嵌套布局的情况下对多个视图进行分组,android,android-layout,Android,Android Layout,考虑这种情况: <LinearLayout style="@style/Basic_W_mp_H_wc_Vertical"> <!-- IMAGE-1 --> <TextView style="@style/Copyright_TextView_1" /> <ImageView style="@style/Copyright_Image_1" /> <include layout="@layout/layou

考虑这种情况:

<LinearLayout style="@style/Basic_W_mp_H_wc_Vertical">

    <!-- IMAGE-1 -->
    <TextView style="@style/Copyright_TextView_1" />
    <ImageView style="@style/Copyright_Image_1" />
    <include layout="@layout/layout_copyright_info"/>
    <View style="@style/HorizontalSeparatorGray"/>

    <!-- IMAGE-2 -->    
    <TextView style="@style/Copyright_TextView_2" />
    <ImageView style="@style/Copyright_Image_2" />
    <include layout="@layout/layout_copyright_info"/>
    <View style="@style/HorizontalSeparatorGray"/>

    <!-- IMAGE-X -->
    [...]
</LinearLayout>

[...]
现在我想隐藏
IMAGE-1
的版权信息。我有两个选择:

  • 创建一个带有
    Id
    的换行布局(
    LinearLayout
    ),以便我可以找到并隐藏它
  • 为每个视图提供
    Id
    ,找到并隐藏它们
  • 第一个选项会起作用,但我不想为此创建额外的选项。 第二个选项也可以,但是如果每个视图都有一个Id,我的布局将无法读取

    我知道还有第三个内存优化选项可以对多个视图进行分组,但我不记得它是如何工作的,google search给了我一个“始终视图组”


    有什么想法吗?

    您可以尝试使用所谓的标记,并将其与标记配对。这将允许您在不同的文件中使用相同的布局(因为您似乎有多个组在一起)。
    标记将元素合并到顶层布局(在本例中为线性布局)。我还没有在这个场景中使用它,所以我想会发生的是,您将无法在一个组中检索它们。不过值得一试

    我认为方案1也是一个不错的选择,原因如下:

  • 编写代码更容易。如果你不把它们组合在一起,你会有额外的一行,并记住额外的ID。只有一个布局环绕它,那么你就可以隐藏一个布局

  • 它更容易维护。如果更改版权外观会发生什么情况?如果要更改布局的其余部分,会发生什么情况?有了一个包裹,就更容易摆弄一个视图,里面的一切都完好无损

  • 这次演出还不错。总的来说,这看起来像是最上面的根视图。扩展此布局不会像扩展ListView项那样糟糕。这是一个一劳永逸的行动,就是这样。您不希望落入这样的陷阱:牺牲代码的可维护性而进行优化,而没有任何好处