Я размещаю много элементов относительно руководства по компоновке и хотел бы позиционировать новый элемент почти относительно этого руководства по макету.
Я пробовал с отрицательной рамкой макета без успеха.
Я размещаю много элементов относительно руководства по компоновке и хотел бы позиционировать новый элемент почти относительно этого руководства по макету.
Я пробовал с отрицательной рамкой макета без успеха.
Вот сообщение в блоге, в котором обсуждаются отрицательные поля в ConstraintLayout
.
Использование пробелов для отрицательных полей
Вид в ConstraintLayout не может иметь отрицательные поля (его не поддерживается). Тем не менее, с помощью простого трюка вы можете иметь аналогичную функциональность, вставив Пространство (которое по существу представляет собой пустой вид) и установив его размер в желаемое поле.
android:translationX="-10dp"
android:translationY="-10dp"
Это плохая практика использовать НЕГАТИВНЫЙ МАРГИН.
ConstraintLayout - это ViewGroup, которая позволяет гибко размещать и изменять размеры виджетов.
Обратите внимание, что маржа может быть только положительной или равна нулю.ConstraintLayout не может иметь отрицательные поля.
Ты можешь использовать
- андроид: layout_marginStart
- андроид: layout_marginEnd
- андроид: layout_marginLeft
- андроид: layout_marginTop
- андроид: layout_marginRight
- андроид: layout_marginBottom
Вы можете использовать View для хранения фиксированного значения, например 30dp, как показано ниже:
<com.mapbox.mapboxsdk.maps.MapView
android:id="@+id/mapView"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="45dp"
app:layout_constraintBottom_toBottomOf="@id/space"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:mapbox_uiRotateGestures="false" />
<View
android:id="@+id/space"
android:layout_width="match_parent"
android:layout_height="30dp"
app:layout_constraintTop_toBottomOf="parent" />
Создание представления для положения ваших братьев и сестер может быть не лучшим вызовом, потому что представление будет нарисовано (даже если оно невидимо), оно все равно будет использовать ресурсы.
Вместо этого вы можете попробовать использовать рекомендации:
Вы можете добавить вертикальную или горизонтальную направляющую, к которой вы можете ограничить представления, и эта направляющая будет невидимой для пользователей приложения. Вы можете расположить направляющую в макете, основываясь на единицах dp или процентах относительно края макета.
https://developer.android.com/training/constraint-layout#constrain-to-a-guideline