Android Studio 2.0 Preview 4
I am using to use BringToFront
to get a TextView
to display in front of the other controls.
The Doc's bringToFront() say you have to call requestlayout
invalidate
. Which I do, but doesn't work.
tvLevel.bringToFront(); tvLevel.requestLayout(); tvLevel.invalidate();
I am using this TextView
inside a android.support.design.widget.CoordinatorLayout
However, the following code does work. But only supports API 21 and above. But I need to support API 16.
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { tvLevel.setTranslationZ(4); tvLevel.invalidate(); }
Or by setting the xml
attribute property android:translationZ("4dp")
works. However, only for API 21
/** * 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); } }
according to this You may missing the line:
((View)myView.getParent()).requestLayout();
and it will work, Check it out.!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With