如何在屏幕上的特定位置设置视图?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在屏幕上的特定位置设置视图?相关的知识,希望对你有一定的参考价值。

如何通过编程方式在屏幕上的特定位置设置视图?我想使用xy之类的点。我希望它为translateXtranslateY。例如,我想将视图设置为点x: 0y: 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
答案

androidlayout可以满足此要求,但我认为它在性能方面非常糟糕,因此已弃用(我希望我对此表示肯定,这没有错)。但是,可以使用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上运行。]]

screenshot

注意:Here是他们在讨论这种模仿AbsoulteLayout的方法以及他们为何“杀死”它的原因。

以上是关于如何在屏幕上的特定位置设置视图?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 UIView 锚定到屏幕上的特定位置并在滚动时将其保留在那里

如何在Android屏幕上识别视图移动?

使用片段着色器在特定位置绘制完美的水平线

如何设置主活动中显示的默认片段?

从另一个片段返回时返回到屏幕上的当前位置

如何在滚动视图中设置谷歌地图片段