如何初始化VievBinding?在 AppCompactActivity 版本 1.0.0 中,可以将布局传递给父构造函数,这样您就不必编写 OnCreateView。 我这样做了,但后来我想使用 VievBinding,但它对我不起作用。不显示文本。可以做什么?
class MainActivity : AppCompatActivity(R.layout.activity_main) {
override fun onStart() {
super.onStart()
var binding = ActivityMainBinding.inflate(layoutInflater)
binding.hello.text = "Hello"
}
}
最佳答案
class MainActivity : AppCompatActivity(R.layout.activity_main) {
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.bind(findViewById(Window.ID_ANDROID_CONTENT).getChildAt(0))
}
尽管如果您依赖 __Binding.inflate()
会更容易。
class MainActivity : AppCompatActivity {
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater, R.layout.activity_main)
setContentView(binding.root)
}
布局膨胀不应该在 onStart
中。它在 Activity 中进入 onCreate
,在 Fragment 中进入 onCreateView
。
关于android - 如何初始化ViewBinding?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60541023/