我有一个xml布局,当我在java代码中将onClick设置为id为iv_contact
的imageview和id为iv_user
的imageview时,顶部的imageview不工作,它捕获了底部ImageView的onClick事件,如何解决这个问题?
这是我的xml布局:
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_contains_content"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/iv_contact"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:scaleType="centerCrop" />
<androidx.cardview.widget.CardView
android:id="@+id/cv_video_send"
android:layout_width="@dimen/dp0"
android:layout_height="@dimen/dp0"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginTop="@dimen/dp12"
android:layout_marginRight="@dimen/dp12"
app:cardCornerRadius="@dimen/dp16"
app:layout_constraintHeight_percent="0.25"
app:layout_constraintWidth_percent="0.3"
app:layout_constraintWidth_min="@dimen/dp110"
app:layout_constraintHeight_min="@dimen/dp175">
<ImageView
android:id="@+id/iv_user"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.cardview.widget.CardView>
</androidx.constraintlayout.widget.ConstraintLayout>
下面是setOnClick代码:
ivImageUser.setOnClickListener(v -> {
Intent getIntent = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(getIntent, REQUEST_USER_IMAGE);
});
ivContact.setOnClickListener(v -> {
Intent getIntent = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(getIntent, REQUEST_CONTACT_IMAGE);
});
我尝试了不同的方法,如设置android:clickable="true"
,但结果不是很积极,任何帮助都非常感谢。谢谢大家
2条答案
按热度按时间ukqbszuj1#
您好,请使用iv_contact Imageview CardView的底部,它将工作。
xmq68pz92#
确保请求代码
REQUEST_USER_IMAGE
和REQUEST_CONTACT_IMAGE
具有不同的值,例如REQUEST_USER_IMAGE = 100
和REQUEST_CONTACT_IMAGE = 200
,并在onActivityResult()
中进行相应处理注意事项:
不要使用过时的方法'startActivityForResult()'。不推荐使用。
试试这个办法: