Tv 開發(fā)中 setOnKeyListener 是一個比較重要的監(jiān)聽,從源碼可以看到 ;
如果需要使用ViewGroup的setOnKeyListener 監(jiān)聽方法狗超;
那么需要這個ViewGroup 要有焦點,也就是 focusable=true的屬性 并且焦點要在這個ViewGroup上
才會監(jiān)聽到key的各種事件;
例如:在Activity中需要監(jiān)聽整個界面的焦點头滔,如果給最大布局設(shè)置focusable=true,
又不給焦點view狀態(tài)(放大動畫)
會導(dǎo)致遙控器控制時,用戶看不到焦點view竹祷,導(dǎo)致用戶體驗差;
那么就需要一種 不給Viewgroup設(shè)置焦點擅编,又能獲取到key事件的方法;
這里介紹一種強行得到key事件的方法攀细;
image.png
如下圖所示,繼承 需要獲取到key事件爱态,又不能有焦點的 控件谭贪;
重寫dispathchKeyEvent方式,再自己加上一個監(jiān)聽锦担,提供給外部處理
image.png