如何在屏幕上的特定位置设置视图?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在屏幕上的特定位置设置视图?相关的知识,希望对你有一定的参考价值。
如何通过编程方式在屏幕上的特定位置设置视图?我想使用x
和y
之类的点。我不希望它为translateX
或translateY
。例如,我想将视图设置为点x: 0
和y: 0
,这意味着它必须位于屏幕的左上方。我该如何实现?
我正在尝试这样做,但是视图将X和Y转换为我不想要的。
val layoutInflater = LayoutInflater.from(context)
val inflatedView: View = layoutInflater.inflate(R.layout.fragment_change_font_size_right, null, false)
inflatedView.popup_xml_view.x = 0f
inflatedView.popup_xml_view.y = 0f
答案
android的layout可以满足此要求,但我认为它在性能方面非常糟糕,因此已弃用(我希望我对此表示肯定,这没有错)。但是,可以使用FrameLayout
来实现相同的行为,并在该布局中添加视图。
要在特定位置添加视图,请创建其布局参数以设置宽度和高度,然后设置边距,以将视图定位为绝对坐标(尺寸以像素为单位:]
val imageView = ImageView(this)
imageView.setBackgroundResource(android.R.color.holo_red_dark)
imageView.layoutParams = FrameLayout.LayoutParams(width, height).apply
setMargins(left, top, right, bottom)
root.addView(imageView)
对于200的高度/宽度和(100,100,0,0)的边距,它将看起来像下面的图像(在模拟的Pixel 3上运行。]]
注意:Here是他们在讨论这种模仿AbsoulteLayout
的方法以及他们为何“杀死”它的原因。
以上是关于如何在屏幕上的特定位置设置视图?的主要内容,如果未能解决你的问题,请参考以下文章