Android - 使用维度的ConstraintLayout百分比

时间:2017-04-11 11:49:46

标签: android android-resources percentage dimension android-constraintlayout

有一个问题just need to have a JwtAuthProviderReader registered,其答案显示了如何使用百分比:

<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"/>

但是如果你不想硬编码百分比但使用维度资源它不起作用。

<!-- 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).

如何在不将值硬编码到布局中的情况下设置百分比?

3 个答案:

答案 0 :(得分:8)

使用dimen:

类型的项目资源,而不是使用维度资源

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

如果使用整数,integer资源最有效:

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

答案 1 :(得分:0)

要设置百分比,请使用分数语法

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

然后

app:layout_constraintGuide_percent="@fraction/guideline_perc"

答案 2 :(得分:0)

现在在 2021 年,dimen float 工作正常。在这种情况下,Android Studio 中的自动完成功能不会。不知道为什么。

app:layout_constraintGuide_percent="@dimen/guideline_perc"