使用bringChildToFront()设置视图的z顺序

时间:2010-09-18 02:09:05

标签: android

我正在尝试设置UI元素的z顺序(即视图),以便它将与另一个元素重叠,但调用ViewGroup.bringChildToFront()会产生奇怪的副作用....它将元素移动到是父(ViewGroup)中的最后一项。这是一个错误,预期的行为,还是什么?更重要的是,如何在没有这种不幸的副作用的情况下设置z顺序或视图?

3 个答案:

答案 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));

孩子是需要带头的视图

由于