自定义的view是一个framelayout,里面有一个button和一个imageview,如下
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/home_button" android:layout_width="wrap_content" android:layout_height="wrap_content"> <Button android:id="@+id/app_button" style="@style/HomeButtonText"/> <ImageView android:id="@+id/remove_img" android:layout_marginLeft="35dp" android:layout_marginTop="15dp" android:clickable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/ic_clear"/> </FrameLayout>
在AS中开发的程序,编译运行没有问题,button和image都能看到,并且可以响应imageview的onclick,但是编译到设备系统中,imageview确会被button覆盖,所有范围的click都是button的,很奇怪的问题,看了https://www.cnblogs.com/DarkMaster/p/4654953.html这篇文章,可以解决我同样的问题。在button外面加了relativelayout,感谢分享。AS中没有问题,是因为AS中app的主题是Theme.Material3.DayNight.NoActionBar,而我编译到设备中的app主题是Theme.AppCompat.DayNight.NoActionBar,实验发现,把AS中的主题也改成Theme.AppCompat.DayNight.NoActionBar,那么AS编译出来的也会有同样的问题