Android:当布局已经包含按钮时,如何以编程方式覆盖整个布局?

Posted

技术标签:

【中文标题】Android:当布局已经包含按钮时,如何以编程方式覆盖整个布局?【英文标题】:Android: How to cover the whole layout by a view programatically while the layout contains buttons already? 【发布时间】:2017-01-06 20:35:35 【问题描述】:

我有一个由按钮填充的线性布局(view1 - view5)。

我想在这个布局中添加一个视图(红星),我希望这个红星覆盖整个布局及其按钮(不设置它们的可见性)

在附图中:

1 - 我的布局,由按钮填充

2- 我想通过以编程方式添加我的红星来实现的布局

我该怎么做?

【问题讨论】:

当您说没有设置它们的可见性时,是否包括星号?因为您可以轻松地将 XML 中的星号设为invisible,然后将其设置为visible。否则,还是可以的。您必须用星号实例化View 并将其构建为您想要的属性,然后将其添加到您的布局中,可能在您的根目录ViewGroup 中(RelativeLayoutLinearLayout 等) 【参考方案1】:

首先将根布局切换到RelativeLayout,类似于

<RelativeLayout ...>
    <View android:id="@+id/view1"
          ... />
    <View android:id="@+id/view2"
          ... 
          android:layout_below="@id/view1" />
    <View android:id="@+id/view3"
          ...
          android:layout_toRightOf="@id/view2"
          android:layout_below="@id/view1" />
    ...

然后在该布局的底部添加忽略所有其他视图的叠加层(因此可以在它们上面绘制)

    <View android:id="@+id/overlay"
          android:layout_alignParentLeft="true"
          android:layout_alignParentTop="true" />
</RelativeLayout>

【讨论】:

以上是关于Android:当布局已经包含按钮时,如何以编程方式覆盖整个布局?的主要内容,如果未能解决你的问题,请参考以下文章

Android 以编程方式包含布局(即没有 XML)

如何以编程方式检查带有涟漪动画的Android单选按钮?

在其线性布局垂直父Android中将以编程方式创建的单选按钮居中

Android,以编程方式布局按钮视图?

以编程方式将位置分配给android中的按钮

android以编程方式将自定义按钮添加到布局