gpt4 book ai didi

android - Toast 的 margin 值有什么作用?

转载 作者:太空宇宙 更新时间:2023-11-03 12:35:09 25 4
gpt4 key购买 nike

Android Toast 类提供了获取和设置边距的方法。我很确定他们指的是整个 toast 消息的外边距。由于 Toast 消息漂浮在 UI 上,为什么这些边距是必需的?

我尝试查看 SDK 引用以及搜索 Internet。我找到的最接近解决方案的是一行建议,即 marginsoffsets 都允许控制 Toast 的定位。为什么我需要两种方法(尽管在概念上不同,因为边距允许根据容器宽度百分比进行指定)来控制 Toast 的定位?

可以肯定的是,这些边距不像其他布局的填充那样工作,是吗?这没有意义,但我想说清楚。

总而言之,我想知道为什么需要边距,边距有什么作用,以及边距和偏移量的用例,即什么时候应该使用边距,什么时候应该使用偏移量,为什么?

更新:

我还没有设法找到任何答案。我尝试过在代码中使用边距与使用偏移量,发现它们似乎提供了两种不同的 Toast 定位范例。设计 Intent (为什么使用两种方法),何时我应该使用一种方法而不是另一种方法(或者至少是其他程序员/UI 设计师发现一种方法比另一种方法更有用的例子),甚至是确切的操作(做边距“居中”它们里面的 toast ?是否对最近的容器边缘应用边距?)这些方法仍然不清楚。

更新 2:

我仔细查看了文档,还查看了 Google 向我指出的 Toast.java 的一些代码。显而易见的是,Toast 包含在一个窗口( Activity 窗口?)中,并且它可能是一个覆盖层。 WindowManager.LayoutParams 类也提供了进一步的线索。我决定更多地使用 Toasts、偏移量和边距,并查看 AOSP 中的代码以获得更清晰的理解。

当我发现更多信息时,我会在这里更新。

最佳答案

我相信边距决定了 toast 出现在屏幕边缘的距离。您还可以调用 setGravity() 来更改它出现在屏幕的哪一侧,然后使用边距来控制它与屏幕一侧的距离。例如:

myToast.setMargin(10, 20);

将创建一个 toast,其在边缘和容器之间具有容器宽度的 10%,在 toast 和容器边缘之间具有容器高度的 20%

要在容器的左上角创建一个 toast,左边距 10 像素,距顶部 20 像素:

myToast.setGravity(Gravity.LEFT| Gravity.TOP, 10, 20)

关于android - Toast 的 margin 值有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21905615/

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