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
中(RelativeLayout
、LinearLayout
等)
【参考方案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:当布局已经包含按钮时,如何以编程方式覆盖整个布局?的主要内容,如果未能解决你的问题,请参考以下文章