【问题标题】:View bring to front doesnt work查看带到前面不起作用
【发布时间】:2014-10-07 23:52:06
【问题描述】:

我想在动画期间更改某些视图的 z 顺序

在 4.1.2 以上的 Android 上它工作得很好,在 4.1.2 以下的 Android 上 Z 顺序没有改变,顶视图保持在顶部。

这就是我正在尝试的。

myView.bringToFront();
((View)myView.getParent()).invalidate();

如何让它在旧设备上运行?

【问题讨论】:

  • 你是对的,我从另一个我想问的问题编辑了这篇文章,并决定不这样做,标题似乎没有改变,修复它,谢谢

标签: android view z-order


【解决方案1】:
   /**
     * Change the view's z order in the tree, so it's on top of other sibling
     * views. This ordering change may affect layout, if the parent container
     * uses an order-dependent layout scheme (e.g., LinearLayout). Prior
     * to {@link android.os.Build.VERSION_CODES#KITKAT} this
     * method should be followed by calls to {@link #requestLayout()} and
     * {@link View#invalidate()} on the view's parent to force the parent to redraw
     * with the new child ordering.
     *
     * @see ViewGroup#bringChildToFront(View)
     */
    public void bringToFront() {
        if (mParent != null) {
            mParent.bringChildToFront(this);
        }
    }

据此,我只是错过了这条线

((View)myView.getParent()).requestLayout();

它成功了!

【讨论】:

  • 根据您的回复,我这样做:myView.bringToFront(); myView.requestLayout();也适用于 Android 4.1.1
  • 在 sdkVersion 16 上测试时确认 :)。我之前在 sdkVersion25 上工作时没有注意到。
【解决方案2】:

我都试过了。 RelativeLayout 应该在 Button 之上,但它只是不想服从。

最后我通过将android:elevation="2dp" 添加到RelativeLayout 来解决它。

海拔值仅用于 API 级别 21 及更高级别。在我的情况下,API 级别 21 以下的一切都很好,而以上的一切都不是。

希望这可能对某人有所帮助:)

【讨论】:

  • 太棒了:D 很高兴我能帮上忙!
  • 很棒的方法。谢谢。
【解决方案3】:

我希望这对某人有用。 以上解决方案都不适合我。为什么?因为我想在前面的观点比其他观点的海拔要小。因此,无论如何,海拔较高的视野总是在前面。

【讨论】:

  • 对于 Lollipop 以上的设备来说是这样。
【解决方案4】:

对于 Api 的 21 或更高版本,有一个称为 translateZ 的 xml 属性,可让您定义视图的海拔高度。

你也可以使用它。

android:translateZ="30dp"

*API >=21

【讨论】:

    【解决方案5】:

    如果父视图是相对布局,那么它可能有效,也可能无效。我试过bringToFrontrequestLayoutremoveView; addView,但没有运气。我的解决方案是将所有内容都放在框架布局中。我最需要的是移动框架布局的底部,使其可见性不可见,然后在代码中使其可见。

    【讨论】:

      【解决方案6】:

      据此,我只是错过了这条线

      这条简单的线适合你

      yourView.bringToFront();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-05-27
        • 1970-01-01
        • 1970-01-01
        • 2013-02-15
        • 1970-01-01
        • 1970-01-01
        • 2019-03-28
        相关资源
        最近更新 更多