gpt4 book ai didi

android - 父 subview 的单击事件

转载 作者:行者123 更新时间:2023-11-29 01:51:10 24 4
gpt4 key购买 nike

我有一个 RelativeLayout 和一个 ImageView
布局如下 -

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rlMain"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black" >

<ImageView
android:id="@+id/ivIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ic_launcher" />

</RelativeLayout>

Activity 代码是 -

public class MainActivity extends Activity implements OnClickListener{

private RelativeLayout rlMain;
private ImageView ivIcon;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rlMain = (RelativeLayout) findViewById(R.id.rlMain);
ivIcon = (ImageView) findViewById(R.id.ivIcon);
rlMain.setOnClickListener(this);
ivIcon.setOnClickListener(this);
}

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.rlMain:
Toast.makeText(this, "Relative Layout clicked", Toast.LENGTH_SHORT).show();
break;

case R.id.ivIcon:
Toast.makeText(this, "Image View clicked", Toast.LENGTH_SHORT).show();
break;
}

}

}

我已经为 RelativeLayout(父级)和 ImageView(子级)应用了点击监听器。
单击相对布局时 - 它由相对布局单击处理程序处理。(这似乎是正确的)。

点击 Imagview - 它由 imageview 处理。 (这里是混淆)

ImageView 上的点击是否应该由父级(相对布局)和子级( ImageView )处理?如果只有 subview 处理点击,逻辑是什么?

最佳答案

clickEvent 将传递给布局层次结构中最低的子元素。如果此元素没有 onClick 行为,它将把事件传递给其父元素,直到事件得到处理。

因此,您可以将 LinearLayout 视为您的 onClick 行为的一个单独 block 。如果您在布局中创建另一个可点击元素,请务必使其足够大,以减少用户错过正确项目的可能性。

来源:Does making parent clickable make all child element clickable as well?

关于android - 父 subview 的单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17969040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com