自定义View时,使用id值的正确姿势

2019-03-08  本文已影响0人  已迁至知乎_此不再维护
正确姿势.jpg

假设:

  1. 存在继承自View的自定义控件CView;
  2. 存在继承自ViewGroup的自定义控件CViewGroup;
  3. CViewGroup的layout文件里包含了控件CView——即CView[of CViewGroup]
  4. 页面P的layout文件中同时使用了CViewGroup和CView——即CView[of P];

那么:

  1. CView[of CViewGroup]和CView[of P]的id不能相同;
  2. 在页面P中,若id相同,且CViewGroup先于CView布局,且对CView注册监听;
  3. 则点击CView[of P]的时候不会触发监听,而点击CView[of CViewGroup]的时候会触发监听。

因此:

  1. 为了避免上述问题,自定义View的时候:内部控件的id应以宿主类名开头!
上一篇下一篇

猜你喜欢

热点阅读