Я пытаюсь создать представление, равное пятидесяти процентам ширины экрана, а высота должна быть такой же, как ширина в макете ограничения.
<android.support.v7.widget.CardView
app:layout_constraintWidth_default = "percent"
app:layout_constraintWidth_percent = "0.5"
android:layout_width = "0dp"
android:layout_height = "0dp"
app:layout_constraintDimensionRatio = "1:1"
android:id = "@+id/cardLayout"
app:cardElevation = "3dp"
app:cardCornerRadius = "50dp"
app:cardBackgroundColor = "@android:color/transparent"
>
Однако, похоже, это не работает. Я также попытался изменить ширину на wrap_content. Что здесь нужно исправить?




Вы должны добавить ограничения start + end (или left + right) к представлению, чтобы оно знало, что какие имеет ширину на 50% от:
app:layout_constraintStart_toStartOf = "parent"
app:layout_constraintEnd_toEndOf = "parent"
Попробуйте этот код:
<?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"
android:layout_width = "match_parent"
android:layout_height = "match_parent">
<android.support.v7.widget.CardView
android:id = "@+id/cardView"
android:layout_width = "0dp"
app:layout_constraintWidth_percent = "0.5"
android:layout_height = "0dp"
app:layout_constraintDimensionRatio = "1:1"
app:cardElevation = "3dp"
app:cardCornerRadius = "50dp"
app:cardBackgroundColor = "@android:color/transparent"
app:layout_constraintStart_toStartOf = "parent"
app:layout_constraintTop_toTopOf = "parent"
app:layout_constraintEnd_toEndOf = "parent"
app:layout_constraintBottom_toBottomOf = "parent" />
</android.support.constraint.ConstraintLayout>
Снимок экрана (приведенного выше кода):
Надеюсь, это вам поможет.