假设:
- 存在继承自View的自定义控件CView;
- 存在继承自ViewGroup的自定义控件CViewGroup;
- CViewGroup的layout文件里包含了控件CView——即CView[of CViewGroup]
- 页面P的layout文件中同时使用了CViewGroup和CView——即CView[of P];
那么:
- CView[of CViewGroup]和CView[of P]的id不能相同;
- 在页面P中,若id相同,且CViewGroup先于CView布局,且对CView注册监听;
- 则点击CView[of P]的时候不会触发监听,而点击CView[of CViewGroup]的时候会触发监听。
因此:
- 为了避免上述问题,自定义View的时候:内部控件的id应以宿主类名开头!
网友评论