在视图层次结构的顶部插入Android视图

时间:2016-10-24 21:55:36

标签: java android view

我想知道是否可以在我的Android应用程序的视图层次结构顶部添加视图。目前,我有一个从外部服务接收信息的类。我想将收到的信息显示为用户的自定义提醒。是否可以在全局视图层次结构的顶部插入此自定义视图,以便它显示在所有其他视图之上。我不想开始新的活动,只需在当前显示的内容上添加视图。

1 个答案:

答案 0 :(得分:3)

是。访问根视图就像查找它一样简单。

在活动中:

FrameLayout root = (FrameLayout) findViewById(android.R.id.content);

由于root是FrameLayout,因此您只需向其添加View即可使其位于最前面。但请注意,如果在添加此视图后添加其他视图,则Z顺序将更改。在这种情况下,您必须使用ViewGroup#bringChildToFront(View view)将其恢复到顶部。

修改

也可以使用View#getRootView()从另一个视图获取根视图。这并不总是可靠的,因为View可能没有附加到层次结构(在这种情况下,View本身就是根)。或者它的父级可能不在层次结构中(在这种情况下,父级本身将是根)。