tv-焦點-3 沒有焦點 ViewGroup也能監聽到 Key事件的方法

Tv 開發中 setOnKeyListener 是一個比較重要的監聽,從源碼可以看到  ;
如果需要使用ViewGroup的setOnKeyListener 監聽方法;
那麼需要這個ViewGroup 要有焦點,也就是 focusable=true的屬性 並且焦點要在這個ViewGroup上 
纔會監聽到key的各種事件;

例如:在Activity中需要監聽整個界面的焦點,如果給最大布局設置focusable=true,
又不給焦點view狀態(放大動畫)
會導致遙控器控制時,用戶看不到焦點view,導致用戶體驗差;

那麼就需要一種 不給Viewgroup設置焦點,又能獲取到key事件的方法;

這裏介紹一種強行得到key事件的方法;

3066171-7db9b50d771b3b4b.png
image.png

如下圖所示,繼承 需要獲取到key事件,又不能有焦點的 控件;
重寫dispathchKeyEvent方式,再自己加上一個監聽,提供給外部處理

3066171-50362bbecb8b07cb.png
image.png
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章