Android layout 使两个视图共享约束布局中的单击反馈

Android layout 使两个视图共享约束布局中的单击反馈,android-layout,android-constraintlayout,Android Layout,Android Constraintlayout,在这种情况下,我有一个约束布局。其中有两种观点。图像视图和文本视图。单击这些视图中的任何一个时,我都希望生成反馈(textview的文本颜色更改和imageview中的可绘制色调),但我似乎想不出一种方法来执行这些操作,除非我将它们放在另一个视图组中 有人能告诉我如何在约束布局中实现这一点吗?谢谢。看一看 表演舔 布尔performClick() 调用此视图的OnClickListener(如果已定义)。执行与单击相关的所有正常操作:报告辅助功能事件、播放声音等 其思想是,当单击一个视图时,您的

在这种情况下,我有一个约束布局。其中有两种观点。图像视图和文本视图。单击这些视图中的任何一个时,我都希望生成反馈(textview的文本颜色更改和imageview中的可绘制色调),但我似乎想不出一种方法来执行这些操作,除非我将它们放在另一个视图组中

有人能告诉我如何在约束布局中实现这一点吗?谢谢。

看一看

表演舔

布尔performClick()

调用此视图的OnClickListener(如果已定义)。执行与单击相关的所有正常操作:报告辅助功能事件、播放声音等

其思想是,当单击一个视图时,您的代码将在另一个视图上调用
performClick()
。如果两个视图的功能相同,则必须确保禁止任何重复操作

除了在代码中这样做之外,我不知道有什么方法只使用XML。有一个in
ConstraintLayout
的概念,但这只是一种控制组成员可见性的方法,而不扩展到其他属性


我会使用另一个封闭的视图组,除非您有不这样做的要求。我似乎更简单。

在ConstraintLayout中使用组概念参考:

在java中

 Group group = findViewById(R.id.group);
        int refIds[] = group.getReferencedIds();
        for (int id : refIds) {
            findViewById(id).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    // your code here.
                }
            });
        }
Kotlin:

        fun Group.setAllOnClickListener(listener: View.OnClickListener?) {
                referencedIds.forEach { id ->
                    rootView.findViewById<View>(id).setOnClickListener(listener)
                }
            }
        Then call the function on the group:

            group.setAllOnClickListener(View.OnClickListener {
                // your code here.
            })
fun Group.setAllOnClickListener(监听器:View.OnClickListener?){
referencedIds.forEach{id->
rootView.findViewById(id).setOnClickListener(listener)
}
}
然后调用组上的函数:
setAllOnClickListener(View.OnClickListener{
//你的代码在这里。
})

如果不在代码中执行此操作,是否没有其他方法?通过这样做,我需要处理单击其中一个的情况,并避免重复操作。听起来太简单了。如果是这样的话,我宁愿添加另一个视图组来处理两者的单击。你认为呢?@ArchieQuiñones我会选择另一个视角组。我只是看起来比较简单。那我就走那条路。我只是想在使用约束布局时可能有一种方法。无论如何,如果你可以编辑你的答案,这样我就可以标记为接受。非常感谢:)我在这里询问点击反馈。不是关于点击的处理。