我正在尝试设置UI元素的z顺序(即视图),以便它将与另一个元素重叠,但调用ViewGroup.bringChildToFront()会产生奇怪的副作用....它将元素移动到是父(ViewGroup)中的最后一项。这是一个错误,预期的行为,还是什么?更重要的是,如何在没有这种不幸的副作用的情况下设置z顺序或视图?
答案 0 :(得分:19)
这是预期的行为。 bringChildToFront()只是更改其父级内View的索引。
答案 1 :(得分:14)
要一直发送视图,请执行以下操作:
private void moveToBack(View currentView) {
ViewGroup viewGroup = ((ViewGroup) currentView.getParent());
int index = viewGroup.indexOfChild(currentView);
for(int i = 0; i<index; i++) {
viewGroup.bringChildToFront(viewGroup.getChildAt(i));
}
}
答案 2 :(得分:0)
bringChildToFront(child)
除了更改孩子的索引值外什么都不做。
为了在不使用showNext()
或showprevious()
的情况下将孩子带到前线,
使用
setDisplayedChild()
和indexOfChild()
在一起。
例如
vf.setDisplayedChild(vf.indexOfChild(child));
孩子是需要带头的视图。
由于