0
<ConstraintLayout
    app:clickListener="@{1}"> // wont work

    <LinearLayout>            // works here

       <TextView/>
       <ImageView/>

    </LinearLayout>
</ConstraintLayout>

我遇到了以前从未遇到过的奇怪行为。我正在尝试使约束布局可单击,因此我有一个绑定适配器来初始化单击侦听器。

@BindingAdapter("clickListener")
fun clickListener(view: ViewGroup, data: Int){
    view.setOnClickListener{
        println("Click")
    }
}

约束布局不听我的点击。一次偶然的机会,我创建了线性布局,将app:clickListener="@{1}"约束布局移到了线性布局。这将起作用并且会听到点击。如果我删除线性布局并添加app:clickListener="@{1}"到 Textview 或 ImageView 或两者中,也会听到点击。无论在根级别如何,它都不起作用。

对此有解释吗?我试图摆脱线性布局,因为它向视图添加了一个层,但这是我必须使它工作的唯一方法,请注意,我只会在这种情况下使用绑定适配器。

4

0 回答 0