Android-процент ConstraintLayout с использованием dimens

есть вопрос как заставить ConstraintLayout работать с процентными значениями? и его ответы показывают, как использовать проценты:

<android.support.constraint.Guideline
    android:id="@+id/guideline"
    android:layout_width="1dp"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    app:layout_constraintGuide_percent="0.5"/>

но если вы не хотите жестко кодировать процент, но использовать ресурс dimen, он не работает.

<!-- inside the layout -->

<android.support.constraint.Guideline
    android:id="@+id/guideline"
    android:layout_width="1dp"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    app:layout_constraintGuide_percent="@dimen/guideline_perc"/>

<!-- inside dimens.xml -->

<dimen name="guideline_perc>0.5</dimen>

вы получаете следующую ошибку:

Float types not allowed (at 'guideline_perc' with value 0.5).

если вы замените значение на 1, возвращается аналогичная ошибка:

Integer types not allowed (at 'guideline_perc' with value 1).

Как установить процент без жесткого кодирования значения в макет?

1 ответов


вместо использования ресурса dimen используйте ресурс элемента типа dimen:

<item name="guideline_perc" type="dimen">0.5</item>

при использовании целых чисел an integer ресурс будет работать лучше:

<integer name="guideline_perc">1</integer>