Я накачал следующий вид внутри схемы ограничений.
Вид:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@color/colorPrimary"
android:orientation="horizontal">
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight=".25"
android:text="menu"/>
<android.support.v7.widget.SearchView
android:layout_width="0dp"
android:layout_weight="1"
android:layoutDirection="rtl"
android:layout_height="match_parent">
</android.support.v7.widget.SearchView>
</LinearLayout>
Вид добавлен в макет контраста с использованием следующего кода:
ConstraintLayout constraintLayout = findViewById(R.id.root);
View inflatedLayout= inflater.inflate(R.layout.menu, constraintLayout, false); constraintLayout.addView(inflatedLayout);
Вид перемещается в верхнюю часть экрана, потому что нет никаких ограничений. Он перекрывает панель инструментов, которая находится в верхней части макета. Панель инструментов просто находится в верхней части родительского элемента с идентификатором android:id="@+id/toolbar"
Как программно добавить ограничения, чтобы раздутый вид был ограничен под панелью инструментов.
Я использовал набор ограничений, чтобы добавить ограничение в раздутое представление следующим образом:
LayoutInflater inflater = LayoutInflater.from(PaymentStatus2.this);
ConstraintLayout constraintLayout = findViewById(R.id.nested);
View inflatedLayout= inflater.inflate(R.layout.menu, constraintLayout, false);
constraintLayout.addView(inflatedLayout);
ConstraintSet set = new ConstraintSet();
set.connect(constraintLayout.getId(),ConstraintSet.TOP,inflatedLayout.getId(),ConstraintSet.TOP,50);
set.connect(constraintLayout.getId(),ConstraintSet.START,inflatedLayout.getId(),ConstraintSet.START,0);
set.applyTo(constraintLayout);
В первой соединительной линии я соединяю родительскую вершину с верхней частью завышенного вида и устанавливаю поле в 50 dp, что должно служить моей цели - держать его ниже панели инструментов, высота которой составляет 50 dps, но это не отражается в макете.
Думая, что представлению нужно хотя бы два контакта, я устанавливаю второе соединение, но оно не работает.
Вот как это выглядит:
https://ibb.co/r2wK83V
раздутый макет все еще движется к вершине, как будто на нем нет ограничений.