Android 开发中将视图缩放到父级尺寸一定百分比的最佳方法是什么?

问题描述 投票:0回答:1

在我当前的项目中,有很多实例我想将视图缩放为其父容器的 1/8,因为我必须利用我可以使用的所有空间,因为我有很多功能要在小型 Android 上实现设备的屏幕。

现在,当我以编程方式生成必须缩放到其父级的 1/8 的视图时,我可以尝试很多方法,但我确信其中大多数都是糟糕的设计。我想知道我应该如何去做。

我们以按钮表格/网格为例。我想要一个可滚动的按钮网格,其中每行有 0-8 个按钮:
Mockup of example

请分享您的想法和解决方案。我在网上没有找到任何关于这个主题的信息,GPT 很难解决这个问题。


方法1:用

findViewById
除以8来获取父容器的宽度。将其写入
layoutParams
集合中,并在视图膨胀之前将其作为视图的宽度传递。

方法 2:让视图使用一组硬编码的默认尺寸(例如 100dp x 100dp)进行膨胀,然后使用

findViewById
除以 8 来获取父容器的宽度。通过覆盖其已膨胀的视图来重新缩放已膨胀的视图宽度属性与新计算的宽度属性。

方法 3:在设计选项卡中,在父容器内创建 2 条辅助线:1 条位于其宽度的 0% 处,2 条位于其宽度的 12.5% 处。添加一个空 View 对象并将其水平约束到第一和第二准则,而不定义任何宽度值。然后,每当您想要创建具有不同信息的相同视图时,只需复制现有视图并调整值即可。

android android-layout android-constraintlayout android-layoutparams
1个回答
0
投票

听起来您正在寻找

GridLayout

如果这不支持您的目标,我建议创建您自己的自定义布局(

ViewGroup
的子类)来调整子视图的大小和排列子视图,而不是在添加子视图时显式调整子视图的大小。

© www.soinside.com 2019 - 2024. All rights reserved.