Я пытаюсь создать изображение, содержащее многоуровневые представления (макет с цветом фона, вероятно, также подойдет, поскольку я просто пытаюсь представить серию данных в одном квадрате). Это показано на моем изображении, где каждый цвет представляет собой разный макет или вид (извините за плохие навыки рисования, представьте, что они равномерно расположены и выровнены). Для этого я надеялся использовать процентные атрибуты ConstraintLayout, но они, похоже, не работают для меня ... все, что я могу получить, - это цвет самого нижнего слоя. Как я могу складывать процентные слои?
Я думал, что ниже код даст мне 3 слоя, каждый по 80% от указанного выше родителя? Но это не так.
<android.support.constraint.ConstraintLayout
android:id = "@+id/cell_afflictionsAura"
style = "@style/CenteredBox"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:background = "@color/colorPrimary"
android:foregroundGravity = "center"
app:layout_constraintWidth_default = "spread"
app:layout_constraintHeight_default = "spread"
app:layout_constraintEnd_toEndOf = "parent"
app:layout_constraintStart_toStartOf = "parent">
<android.support.constraint.ConstraintLayout
android:layout_width = "0dp"
android:layout_height = "0dp"
android:background = "@color/colorAccent"
android:foregroundGravity = "center"
app:layout_constraintWidth_default = "percent"
app:layout_constraintHeight_default = "percent"
app:layout_constraintHeight_percent = "80%"
app:layout_constraintWidth_percent = "80%">
<android.support.constraint.ConstraintLayout
android:layout_width = "0dp"
android:layout_height = "0dp"
android:background = "@color/solid_black"
app:layout_constraintWidth_default = "percent"
app:layout_constraintHeight_default = "percent"
android:foregroundGravity = "center"
app:layout_constraintHeight_percent = "80%"
app:layout_constraintWidth_percent = "80%">
</android.support.constraint.ConstraintLayout>
</android.support.constraint.ConstraintLayout>
</android.support.constraint.ConstraintLayout>
Это возможно, вам просто нужно внести некоторые исправления:
1 - укажите желаемый процент в десятичных дробях, например .8 вместо 80%
2 - вы забываете ограничить должность дочерних макетов: вы ограничиваете только высоту и вес. Например, если вы хотите, чтобы представление было централизовано в родительском представлении, вам следует добавить в него следующие атрибуты:
app:layout_constraintStart_toStartOf = "parent"
app:layout_constraintTop_toTopOf = "parent"
app:layout_constraintBottom_toBottomOf = "parent"
app:layout_constraintEnd_toEndOf = "parent"
3 - наконец, после этих изменений я считаю, что app:layout_constraintWidth_default = "percent" не нужен.
Итак, ваш xml будет таким:
<android.support.constraint.ConstraintLayout
android:id = "@+id/cell_afflictionsAura"
style = "@style/CenteredBox"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:background = "@color/colorPrimary"
android:foregroundGravity = "center"
app:layout_constraintWidth_default = "spread"
app:layout_constraintHeight_default = "spread">
<android.support.constraint.ConstraintLayout
android:layout_width = "0dp"
android:layout_height = "0dp"
android:background = "@color/colorAccent"
android:foregroundGravity = "center"
app:layout_constraintHeight_percent = ".8"
app:layout_constraintWidth_percent = ".8"
app:layout_constraintStart_toStartOf = "parent"
app:layout_constraintTop_toTopOf = "parent"
app:layout_constraintBottom_toBottomOf = "parent"
app:layout_constraintEnd_toEndOf = "parent">
<!--Transparent horizontal constraint-->
<android.support.constraint.ConstraintLayout
android:layout_width = "0dp"
android:layout_height = "0dp"
android:background = "@color/solid_black"
app:layout_constraintHeight_percent = ".8"
app:layout_constraintWidth_percent = ".8"
app:layout_constraintStart_toStartOf = "parent"
app:layout_constraintTop_toTopOf = "parent"
app:layout_constraintBottom_toBottomOf = "parent"
app:layout_constraintEnd_toEndOf = "parent">
</android.support.constraint.ConstraintLayout>
</android.support.constraint.ConstraintLayout>
</android.support.constraint.ConstraintLayout>
Надеюсь, что это работает!
Сработало отлично! Огромное спасибо! Я обнаружил, что% используется во многих различных онлайн-уроках, я полагаю, что это должно быть прекращено.