我正在尝试使用动态创建的 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()
的0x3
id 3
。
val layout = findViewById<LinearLayout>(id)
但layout
总是null
。
findViewById
当给定在或 中LinearLayout
定义的 id 时返回成功。ids.xml
layout/....xml
只有动态创建的 id 才会失败。