![](/img/trans.png)
[英]In databinding, how do I programmatically set the root view of my layout to become another complex layout?
[英]how do I detect what may root view binding layout is
我正在构建一个 android 活动,它使用视图绑定和 Kotlin 在三种不同的布局之间变化。 每个布局都有自己的绑定 object。 如何从 Kotlin 代码中检测正在显示的布局?
''' class MainActivity: AppCompatActivity() {
lateinit var constrainBinding: ActivityMainBinding // constrain layout
lateinit var linearBinding: MainMenuBinding // linear layout
lateinit var tableBinding: TableLayoutBinding // table layout
var linearLayout = true
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
constrainBinding = ActivityMainBinding.inflate(layoutInflater)
linearBinding = MainMenuBinding.inflate(layoutInflater)
tableBinding = TableLayoutBinding.inflate(layoutInflater)
setContentView(linearBinding.root)
linearBinding.btConstrain.setOnClickListener { loadConstraintLayout() }
linearBinding.btTable.setOnClickListener { loadTableLayout() }
constrainBinding.tvBack.setOnClickListener { loadLinearLayout() }
}'''
如果你想使用这三个布局而不是三个片段,你可以添加一个 var 到当前的 Binding:
lateinit var currentBinding: ViewBinding
private fun loadLinearLayout() {
currentBinding = linearBinding
}
private fun loadTableLayout() {
currentBinding = tableBinding
}
private fun loadConstraintLayout() {
currentBinding = constrainBinding
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.