У меня есть это расположение ограничений:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:ignore="Overdraw">
<FrameLayout
android:id="@+id/popover"
style="@style/popover_style"
android:layout_width="@dimen/width"
android:layout_height="0dp"
android:layout_marginBottom="@dimen/bottom_margin"
android:layout_marginLeft="@dimen/side_margin"
android:layout_marginRight="@dimen/side_margin"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_default="wrap"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintVertical_bias="0">
</FrameLayout>
</android.support.constraint.ConstraintLayout>
Я хочу изменить расположение моего popover
вида с помощью кода.
иногда по центру по горизонтали.
В некоторых других случаях размер левого поля будет фиксированным.
иллюстрации:
![enter image description here](https://i.stack.imgur.com/oSKBz.png)
Я пробовал этот код, но вид всегда, кажется, центрирован по горизонтали.
Чего мне не хватает?
private void setupPopoverPosition() {
ConstraintSet constraintSet = new ConstraintSet();
constraintSet.clone(rootView);
int bottomMargin =
getContext()
.getResources()
//some code
constraintSet.applyTo(rootView);
ConstraintLayout.LayoutParams layoutParams =
(ConstraintLayout.LayoutParams) popover.getLayoutParams();
layoutParams.topMargin = topMargin;
layoutParams.bottomMargin = bottomMargin;
layoutParams.rightMargin = popoverEndMargin;
popover.setLayoutParams(layoutParams);
popover.setLayoutParams(layoutParams);
popover.requestLayout();
}