前提很简单。我有一个项目列表,每个项目都有一个包含项目标题的TextView
和一个Switch
,显示该项目是打开还是关闭。与其点击Switch
来切换项目的开启或关闭,我希望能够点击该项目的任何地方来切换它。基本上:
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:onClick="toggleSwitch">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Switch
android:id="@+id/switch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</android.support.constraint.ConstraintLayout>
但是,这在屏幕上使用时会创建嵌套布局,这可能会降低性能。我想知道,由于这个ConstraintLayout
实际上只是一个带有onClick
的容器,是否存在一种避免嵌套布局的方式来实现此布局。谢谢!
答案 0 :(得分:0)
您可以为您的textView和您的按钮提供与单击时将被调用的方法相同的方式,这样,每次单击视图(在项目的任何位置),您都将调用该方法。
例如:
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//change you switch state
}
});
switch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//change you switch state
}
});