Android - ConstraintLayout 使用维度的百分比
Android - ConstraintLayout percentage using dimens
有一个问题,其答案显示了如何使用百分比:
<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).
如何在不将值硬编码到布局中的情况下设置百分比?
不使用 dimen 资源,而是使用 dimen 类型的项目资源:
<item name="guideline_perc" type="dimen">0.5</item>
如果使用整数,integer
资源效果最佳:
<integer name="guideline_perc">1</integer>
要设置百分比,请使用分数语法
<fraction name="guideline_perc">0.5</fraction>
然后
app:layout_constraintGuide_percent="@fraction/guideline_perc"
现在 2021 年 dimen float 可以正常工作了。在这种情况下,Android studio 中的自动完成功能不会。不知道为什么。
app:layout_constraintGuide_percent="@dimen/guideline_perc"
系统自行生成
<item name="porcent_line_top_navebar" type="dimen" format="float">0.88</item>
有一个问题
<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).
如何在不将值硬编码到布局中的情况下设置百分比?
不使用 dimen 资源,而是使用 dimen 类型的项目资源:
<item name="guideline_perc" type="dimen">0.5</item>
如果使用整数,integer
资源效果最佳:
<integer name="guideline_perc">1</integer>
要设置百分比,请使用分数语法
<fraction name="guideline_perc">0.5</fraction>
然后
app:layout_constraintGuide_percent="@fraction/guideline_perc"
现在 2021 年 dimen float 可以正常工作了。在这种情况下,Android studio 中的自动完成功能不会。不知道为什么。
app:layout_constraintGuide_percent="@dimen/guideline_perc"
系统自行生成
<item name="porcent_line_top_navebar" type="dimen" format="float">0.88</item>