gpt4 book ai didi

android - Android 中 AbsoluteLayout 的替代方案是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 13:06:28 24 4
gpt4 key购买 nike

我看到帖子说 FrameLayout 是替代方案,我应该使用边距来定位东西(这让我觉得非常违反直觉,但是好吧......如果它有效,我会接受它)。但是,我无法让它工作,所以,我正在寻求帮助。

这是我的代码

    FrameLayout layout = new FrameLayout(this);
layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

Button btn = new Button(this);
btn.setBackgroundResource(R.drawable.btn);

FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lp.setMargins(100,100,100,100);

btn.setLayoutParams(lp); //i've tried with and without this line, no change

layout.addView(btn , lp);

无论我做什么,按钮都绘制在 0,0 处。当我将 lp 的 LayoutParam 更改为 FILL_PARENT 时,按钮将被拉伸(stretch)以占据整个屏幕(这是有道理的)。

你如何让它在屏幕上的其他地方画画,不管那里还有什么?

一如既往,提前 super 感谢。

[编辑]看来我的问题并不完全清楚(给出答案)所以......

在上面的代码中,目的是创建一个按钮,将其传递给布局并让它在屏幕上的 100,100 处绘制。

我知道这在不同的设备上可能意味着不同的事情。我没意见。我只需要一种在运行时以编程方式将项目放置在特定位置的方法。我不想依赖重力(或热力学定律)。我只想指定一个位置并让元素出现在那里:)

最佳答案

正如许多人指出的那样,在屏幕上的绝对像素位置设置按钮是一个非常糟糕的主意,并且永远不会在所有可用的 Android 手机上工作。我确信有更好的方法来实现您想要的布局。

但是,要回答所问的问题:要在运行时定位它,您可以使用 AbsoluteLayout.LayoutParms。

AbsoluteLayout absoluteLayout = //get absolute layout

Button button = new Button();
AbsoluteLayout.LayoutParms params = absoluteLayout.generateDefaultLayoutParams();
params.x = 100;
params.y = 100;

absoluteLayout.addView(button, params);

关于android - Android 中 AbsoluteLayout 的替代方案是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3687476/

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