gpt4 book ai didi

Android 布局参数仅更改宽度和高度

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:48:09 25 4
gpt4 key购买 nike

我知道如何通过执行以下操作使用 LayoutParams 设置 View 的宽度和高度:

android.view.ViewGroup.LayoutParams params = button.getLayoutParams();
params.width = height/7;
params.height = height/10;
button.setLayoutParams(params);

现在,一旦我想将相同的高度和宽度应用到另一个按钮,我需要创建另一个 LayoutParams 或像这里一样覆盖现有的 LayoutParams:

android.view.ViewGroup.LayoutParams params2 = but2.getLayoutParams();
params2.width = height/7;
params2.height = height/10;
but2.setLayoutParams(params2);

我的应用程序中有大约 50 个按钮,我怀疑获取所有参数以仅更改宽度和高度的代码是否被认为是好的代码 - 我想保留剩余的参数(toLeftOf,[...] ).

有没有办法只改变参数的宽度和高度而保留其余参数?所以它看起来像这样:

android.view.ViewGroup.LayoutParams params = button.getLayoutParams();
params.width = height/7;
params.height = height/10;
button.setLayoutParams(params);
button2.setLayoutParams(params);
button3.setLayoutParams(params);
butt[...]

非常感谢。

最佳答案

使用方法 getLayoutParams() 的全部目的是从 View 中获取现有的(保留所有规则和内容)。然后你可以修改那些LayoutParams的具体参数,其余的保持不变。因此,如果您的 Views 在 xml 中的设置不同,您需要调用 getLayoutParams() 并修改返回的对象。如果他们在 xml 中使用完全相同的规则,您可以像在上一个示例中所写的那样进行操作。

我建议您做的只是创建一个方法来包装更新 LayoutParams 的整个过程。像这样:

private void setDimensions(View view, int width, int height){
android.view.ViewGroup.LayoutParams params = view.getLayoutParams();
params.width = width;
params.height = height;
view.setLayoutParams(params);
}

这会显着简化您的代码,因为这样您就可以为每个按钮调用此方法,并使用适当的宽度和高度值。

setDimensions(button, height/7, height/10);
setDimensions(button2, height/7, height/10);
setDimensions(button3, height/7, height/10);

关于Android 布局参数仅更改宽度和高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28269837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com