android – Toast的保证金值有什么作用?
作者:互联网
Android Toast类提供了获取和设置边距的方法.我很确定他们会提到整个吐司消息的外边距.由于Toast消息在UI上浮动,为什么这些边距确实必要?
我试着查看SDK参考以及搜索Internet.我找到的最接近解决方案的是一条线建议,即边距和偏移都允许控制Toast的定位.为什么我需要两种方法(尽管概念上不同,因为边距允许按容器宽度百分比来规定),以控制Toast的定位?
可以肯定的是,这些边距不像其他布局的填充那样工作吗?这没有意义,但我想明确一点.
总而言之,我想知道为什么需要保证金,保证金的作用以及保证金与抵消的使用情况,即何时应该使用保证金,何时应使用抵消额,为什么?
更新:
我还没有找到任何答案.我尝试使用边距而不是在代码中使用偏移量,并发现它们似乎提供了两种不同的Toast定位范例.设计意图(为什么有两种方法),当我应该使用一种方法而不是另一种方法时(或者至少是其他程序员/ UI设计者发现一种方法比其他方法更有用的例子),甚至是确切的操作(做边距)这些方法的中心“它们里面的吐司?是对最近的容器边缘施加的边缘?”仍然不清楚.
更新2:
我仔细查看了文档,还看了谷歌指出的Toast.java的一些代码.显而易见的是Toast包含在一个Window(Activity窗口?)中,它可能是一个叠加层. WindowManager.LayoutParams类还提供了进一步的线索.我已决定使用Toasts,偏移和边距,以及查看AOSP中的代码以获得更清晰的理解.
我会在这里更新,因为我发现了更多.
解决方法:
我相信边距决定了吐司从屏幕边缘出现的距离.您还可以调用setGravity()来更改它出现在屏幕的哪一侧,然后使用边距来控制它与屏幕一侧的距离.例如:
myToast.setMargin(10, 20);
将创建一个在边缘和容器之间具有10%容器宽度的吐司,以及在吐司和容器边缘之间容器高度的20%
要创建位于容器左上角的Toast,左侧为10像素边距,顶部为20像素边距:
myToast.setGravity(Gravity.LEFT| Gravity.TOP, 10, 20)
标签:android,android-ui 来源: https://codeday.me/bug/20190825/1716788.html