Мне нужно ограничить мою кнопку constraint_top до myCardView constraint_bottom и установить margin_top моей кнопки на 64dp. Но по какой-то причине не работает.
Вот мой макет:
<?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"
android:background = "@color/shadow"
android:orientation = "vertical">
<android.support.v7.widget.CardView
android:id = "@+id/myCardViewItem"
android:layout_width = "0dp"
android:layout_height = "wrap_content"
android:layout_margin = "16dp"
android:layout_marginEnd = "8dp"
android:layout_marginStart = "8dp"
android:layout_marginTop = "8dp"
app:cardCornerRadius = "4dp"
app:layout_constraintEnd_toEndOf = "parent"
app:layout_constraintStart_toStartOf = "parent"
app:layout_constraintTop_toTopOf = "parent">
<android.support.constraint.ConstraintLayout
android:layout_width = "match_parent"
android:layout_height = "wrap_content">
<EditText
android:id = "@+id/txtItemValue"
android:layout_width = "0dp"
android:layout_height = "wrap_content"
android:layout_marginBottom = "8dp"
android:layout_marginLeft = "16dp"
android:layout_marginTop = "8dp"
android:background = "@android:color/transparent"
android:drawableLeft = "@drawable/ic_folder"
android:drawablePadding = "8dp"
android:ems = "10"
android:hint = "@string/item"
android:inputType = "textPersonName"
app:layout_constraintBottom_toBottomOf = "parent"
app:layout_constraintLeft_toLeftOf = "parent"
app:layout_constraintTop_toTopOf = "parent" />
</android.support.constraint.ConstraintLayout>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:id = "@+id/myCardViewItemName"
android:layout_width = "0dp"
android:layout_height = "wrap_content"
android:layout_margin = "16dp"
android:layout_marginEnd = "8dp"
android:layout_marginStart = "8dp"
android:layout_marginTop = "8dp"
app:cardCornerRadius = "4dp"
app:layout_constraintEnd_toEndOf = "parent"
app:layout_constraintStart_toStartOf = "parent"
app:layout_constraintTop_toBottomOf = "@id/myCardViewItem">
<android.support.constraint.ConstraintLayout
android:layout_width = "match_parent"
android:layout_height = "wrap_content">
<EditText
android:id = "@+id/txtItemNameValue"
android:layout_width = "0dp"
android:layout_height = "wrap_content"
android:layout_marginBottom = "8dp"
android:layout_marginLeft = "16dp"
android:layout_marginTop = "8dp"
android:background = "@android:color/transparent"
android:drawableLeft = "@drawable/ic_folder"
android:drawablePadding = "8dp"
android:ems = "10"
android:hint = "@string/item_name"
android:inputType = "text"
app:layout_constraintBottom_toBottomOf = "parent"
app:layout_constraintLeft_toLeftOf = "parent"
app:layout_constraintTop_toTopOf = "parent" />
</android.support.constraint.ConstraintLayout>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:id = "@+id/myCardViewItemPrice"
android:layout_width = "0dp"
android:layout_height = "wrap_content"
android:layout_margin = "16dp"
android:layout_marginEnd = "8dp"
android:layout_marginStart = "8dp"
android:layout_marginTop = "8dp"
app:cardCornerRadius = "4dp"
app:layout_constraintEnd_toEndOf = "parent"
app:layout_constraintStart_toStartOf = "parent"
app:layout_constraintTop_toBottomOf = "@+id/myCardViewItemName">
<android.support.constraint.ConstraintLayout
android:layout_width = "match_parent"
android:layout_height = "wrap_content">
<EditText
android:id = "@+id/txtItemPriceValue"
android:layout_width = "0dp"
android:layout_height = "wrap_content"
android:layout_marginBottom = "8dp"
android:layout_marginLeft = "16dp"
android:layout_marginTop = "8dp"
android:background = "@android:color/transparent"
android:drawableLeft = "@drawable/ic_folder"
android:drawablePadding = "8dp"
android:ems = "10"
android:hint = "@string/item_price"
android:inputType = "numberDecimal"
app:layout_constraintBottom_toBottomOf = "parent"
app:layout_constraintLeft_toLeftOf = "parent"
app:layout_constraintTop_toTopOf = "parent" />
</android.support.constraint.ConstraintLayout>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:id = "@+id/myCardViewItemStoredQuantity"
android:layout_width = "0dp"
android:layout_height = "wrap_content"
android:layout_margin = "16dp"
android:layout_marginEnd = "8dp"
android:layout_marginStart = "8dp"
android:layout_marginTop = "8dp"
app:cardCornerRadius = "4dp"
app:layout_constraintEnd_toEndOf = "parent"
app:layout_constraintStart_toStartOf = "parent"
app:layout_constraintTop_toBottomOf = "@+id/myCardViewItemPrice">
<android.support.constraint.ConstraintLayout
android:layout_width = "match_parent"
android:layout_height = "wrap_content">
<EditText
android:id = "@+id/txtItemStoredQuantityValue"
android:layout_width = "0dp"
android:layout_height = "wrap_content"
android:layout_marginBottom = "8dp"
android:layout_marginLeft = "16dp"
android:layout_marginTop = "8dp"
android:background = "@android:color/transparent"
android:drawableLeft = "@drawable/ic_folder"
android:drawablePadding = "8dp"
android:ems = "10"
android:hint = "@string/item_stored_quantity"
android:inputType = "number"
app:layout_constraintBottom_toBottomOf = "parent"
app:layout_constraintLeft_toLeftOf = "parent"
app:layout_constraintTop_toTopOf = "parent" />
</android.support.constraint.ConstraintLayout>
</android.support.v7.widget.CardView>
<Button
android:id = "@+id/btnRegister"
android:layout_width = "250dp"
android:layout_height = "45dp"
android:layout_margin = "16dp"
android:layout_marginEnd = "8dp"
android:layout_marginStart = "8dp"
android:layout_marginTop = "64dp"
android:background = "@drawable/rounded_button_shape"
android:text = "salvar"
android:textColor = "@color/white"
app:layout_constraintEnd_toEndOf = "parent"
app:layout_constraintStart_toStartOf = "parent"
app:layout_constraintTop_toBottomOf = "@+id/myCardViewItemStoredQuantity" />
<TextView
android:id = "@+id/txtViewList"
android:layout_width = "250dp"
android:layout_height = "wrap_content"
android:layout_marginEnd = "8dp"
android:layout_marginStart = "8dp"
android:layout_marginTop = "8dp"
android:text = "Listar"
android:textAlignment = "center"
android:textSize = "18sp"
app:layout_constraintEnd_toEndOf = "parent"
app:layout_constraintStart_toStartOf = "parent"
app:layout_constraintTop_toBottomOf = "@+id/btnRegister" />
</android.support.constraint.ConstraintLayout>
Это результат margin_top 64dp или любого введенного значения. Не работает.
Я думаю, это могло быть вызвано иерархией наследования макета, но я не могу найти ошибку. кто угодно? Спасибо!
Предположим, что вы не можете создать свое приложение, попробуйте удалить + перед идентификатором в объявлении кнопки. Знак плюс используется только для объявления идентификатора.
app:layout_constraintTop_toBottomOf = "@id/myCardViewItemStoredQuantity"
Просто удалите со своей кнопки
android:layout_margin = "16dp"
И android: layout_marginTop = "64dp" в вашей кнопке будет работать Конечный результат
Это потому, что вы используете
android:layout_margin = "16dp"
а также
android:layout_marginTop = "64dp"
когда вы используете layout_margin, он устанавливает все поля, включая верхнее, правое, левое и кнопку, на это число. Итак, если вы используете android:layout_margin = "16dp", он также устанавливает android:layout_marginTop = "16dp".
Итак, вы должны удалить android:layout_margin = "16dp", и все будет в порядке.