android - 在Android中添加元素的绝对位置
问题描述
View
我们正在以编程方式创建一个onCreate
方法并尝试将以下任一设置为该视图-
top
和left
或_bottom
和right
。_
但它不起作用。这些绝对位置可以相对于屏幕或父布局。这是重现相同事物的示例-
main.xml
.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:id="@+id/root"
android:layout_height="match_parent">
</RelativeLayout>
这是MainActivity
我正在以view
编程方式尝试的地方。
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main)
val root = findViewById<RelativeLayout>(R.id.root)
val layoutParams = RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT
)
val view = TextView(this)
view.layoutParams = layoutParams
view.text = "Test View"
//Applying top and left value in pixels.
view.top = 100
view.left = 100
root.addView(view)
}
}
top
并且left
值没有分配给视图。
我们尝试了许多其他布局-
FrameLayout
LinearLayout
AbsoluteLayout
(已弃用,因此不考虑)
我们也尝试过使用View#layout()
方法,但它也不起作用。
我们参考了以下文章——
- 如何在 Android 中动态设置视图的位置?
- forceLayout()、requestLayout() 和 invalidate() 的使用
- Android 设置视图位置 - setY vs setTop
- https://www.tutorialspoint.com/how-to-set-the-absolute-position-of-a-view-in-android
- https://mindmajix.com/android/absolute-layout
- https://developer.android.com/guide/topics/ui/how-android-draws.html
- Android:addView 和 layout 方法不能一起工作
- Android 布局无法正常工作
- Android Studio 不显示布局预览
- 设置视图的绝对位置
- https://www.tabnine.com/code/java/methods/android.view.View/setBottom
解决方案
推荐阅读
- c# - 每次执行启动倒计时时,冷却计时器的速度都会加倍
- python - 如何用与元素相同的矩阵初始化块矩阵?
- python - 使用 selenium bs4 和 python 从网站中提取链接
- python - 如何在 Python 中按长度拆分输入
- vue.js - VueJS 中的条件 @click for
- python - Pyzbar 不适用于 Ubuntu
- python - 如何获得数据集中所有年份的最小值和月份?(熊猫)
- javascript - 在循环中使用 .add() 循环时收到未捕获的类型错误
- html - div 在另一个 div 上方的固定或粘性位置
- python - 如何从 html 中抓取图像 url?