Tv 開發中 setOnKeyListener 是一個比較重要的監聽,從源碼可以看到 ;
如果需要使用ViewGroup的setOnKeyListener 監聽方法;
那麼需要這個ViewGroup 要有焦點,也就是 focusable=true的屬性 並且焦點要在這個ViewGroup上
纔會監聽到key的各種事件;
例如:在Activity中需要監聽整個界面的焦點,如果給最大布局設置focusable=true,
又不給焦點view狀態(放大動畫)
會導致遙控器控制時,用戶看不到焦點view,導致用戶體驗差;
那麼就需要一種 不給Viewgroup設置焦點,又能獲取到key事件的方法;
這裏介紹一種強行得到key事件的方法;
如下圖所示,繼承 需要獲取到key事件,又不能有焦點的 控件;
重寫dispathchKeyEvent方式,再自己加上一個監聽,提供給外部處理