如何使 ConstraintLayout 使用百分比值?

新手上路,请多包涵

借助 Android Studio 2.2 的 Preview 1,Google 在其支持库中发布了一个新布局: ConstraintLayout 。使用 ConstraintLayout 可以更轻松地在 Android Studio 中使用设计工具,但我没有找到使用相对大小(如 LinearLayout 中的百分比或“权重”)的方法。有没有办法根据百分比定义约束?例如,让视图占据屏幕的 40%,在视图之间创建 20% 的边距,将视图的宽度设置为另一个视图宽度的 50%?

原文由 Yury Fedorov 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

您目前可以通过多种方式执行此操作。

一种是创建指南(右键单击设计区域,然后单击添加垂直/水平指南)。然后,您可以单击指南的“标题”将定位更改为基于百分比。最后,您可以将视图限制为指南。

另一种方法是使用偏差(百分比)定位视图,然后将其他视图锚定到该视图。

也就是说,我们一直在考虑如何提供基于百分比的维度。我不能做出任何承诺,但这是我们想补充的。

原文由 Romain Guy 发布,翻译遵循 CC BY-SA 4.0 许可协议

Constraint Layout 1.0 使视图占据屏幕的百分比需要制定两条准则。在 Constraint Layout 1.1 中,通过允许您轻松地将任何视图限制为百分比宽度或高度,它变得更加简单。

在此处输入图像描述

这不是很棒吗?所有视图都支持 layout_constraintWidth_percent 和 layout_constraintHeight_percent 属性。这些将导致约束固定在可用空间的百分比上。因此,只需几行 XML 就可以使 Button 或 TextView 展开以填充屏幕的百分比。

例如,如果你想将按钮的宽度设置为屏幕的 70%,你可以这样做:

 <Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_constraintWidth_percent="0.7" />

请注意,您必须将尺寸用作 0dp 的百分比,因为我们在上面已将 android:layout_width 指定为 0dp。

同样,如果你想将按钮的高度设置为屏幕的 20%,你可以这样做:

 <Button
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_constraintHeight_percent="0.2" />

看!这次我们将 android:layout_height 指定为 0dp,因为我们希望按钮使用高度作为百分比。

原文由 Ashish Satpute 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题