2

我正在尝试使用动态创建的 id 访问视图,findViewById但它总是返回null.

这就是我创建 id、使用View.generateViewId()ViewCompat.generateViewId()用于较低 API 版本的方式。

import androidx.core.view.ViewCompat
import android.view.View

...
// generate an id
val id = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
    View.generateViewId()
} else {
    ViewCompat.generateViewId()
}
// assign the id
view.id = id
// Then add it to a parent view
parent.addView(view)
...

记录 id 给出3.

现在,视图正在创建,它是可见的,没有错误,甚至布局检查器也显示由 ie 分配View.generateViewId()0x3id 3

image_bruh

val layout = findViewById<LinearLayout>(id)

layout总是null

findViewById当给定在或 中LinearLayout定义的 id 时返回成功。ids.xmllayout/....xml

只有动态创建的 id 才会失败。

4

0 回答 0