アニメーション中にいくつかのビューのZオーダーを変更したい
Android 4.1.2 以上では問題なく動作しますが、Android 4.1.2 未満では Z 順序は変更されず、トップ ビューが最上部に残ります。
私が試しているのはこれです。
myView.bringToFront();
((View)myView.getParent()).invalidate();
古いデバイスで動作させるにはどうすればよいですか?
ベストアンサー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();
そしてそれはうまくいきました!