I need to change margin of toolbar, which was made of ConstraintLayout, in different cases. I tried to do it in following way
ConstraintLayout.LayoutParams newLayoutParams = new ConstraintLayout.LayoutParams(ConstraintLayout.LayoutParams.MATCH_PARENT, ConstraintLayout.LayoutParams.WRAP_CONTENT); ConstraintLayout.MarginLayoutParams layoutParams = new ConstraintLayout.MarginLayoutParams(newLayoutParams); layoutParams.setMargins(0, 0, 0, 0); toolbar.setLayoutParams(newLayoutParams);
but in second case layoutParams.setMargins(16, 16, 16, 16);
it did not change. So, can someone give other way or point to the mistake. Thanks for spending time to my problem.
I tried to use newLayoutParams.setMargins(54, 54, 54, 0);
this puts margin to left and right, but I still need to put margin on top of it.
Finally with help of @Aksh I found my mistake and solve my problem. If someone find it useful, I will put my code bellow
ConstraintLayout.LayoutParams newLayoutParams = (ConstraintLayout.LayoutParams) toolbar.getLayoutParams(); newLayoutParams.topMargin = 0; newLayoutParams.leftMargin = 0; newLayoutParams.rightMargin = 0; toolbar.setLayoutParams(newLayoutParams);
good way to add margin to a view in constraintlayout
val constraintSet = ConstraintSet() constraintSet.clone(constraintLayoutId) val marginTop = context.getDimension(10f) constraintSet.setMargin(R.id.tv_user, ConstraintSet.TOP, marginTop) constraintSet.applyTo(constraintLayoutId) fun Context.getDimension(value: Float): Int { return TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP, value, this.resources.displayMetrics).toInt() }
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