Android中<include>布局内控件OnClickListener点击无响应求助
问题解决:DrawerLayout中引入的布局控件无法响应点击
问题原因
你在content_dg_main_2的根布局中设置了android:layout_gravity="start"属性。DrawerLayout的布局规则明确:
- 第一个子View是主内容区域,不需要设置
layout_gravity - 只有后续子View设置
layout_gravity后,才会被识别为抽屉侧边栏
给主内容布局添加layout_gravity="start"会导致DrawerLayout错误地将其判定为抽屉组件,和后面的NavigationView产生重叠。同时主内容区域逻辑上缺失,最终导致你看到的控件无法接收点击事件(点击被DrawerLayout或重叠的抽屉组件拦截)。
修复步骤
修改content_dg_main_2的根布局,删除android:layout_gravity="start"属性即可:
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/activity_my_speedo_root" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- 剩余布局内容保持不变 --> </androidx.constraintlayout.widget.ConstraintLayout>
额外验证点
- 确认
MainDGAActivity继承自AppCompatActivity,布局加载流程无异常 - 检查控件的
setOnClickListener代码未被其他逻辑覆盖或禁用
内容的提问来源于stack exchange,提问作者Sufyan Hashmi
相关产品推荐
相关产品推荐

