
如圖,做機頂盒開發的時候可能會遇到這樣的頁面,上邊一個tablayout,下邊是一個ViewPager,fragment內有一個VerticalGridView,當焦點移動到VerticalGridView最上邊的item上,再按遙控器上鍵想要移動焦點到tab欄上時,發現不起作用,焦點到這就上不去了,焦點只能在VerticalGridView內部移動,不能去到列表外部,妥妥的只能進不能出
解決辦法:在xml頁面中給VerticalGridView控件加一句
app:focusOutFront="true"
就OK了,注意這句是沒有代碼提示的,要完全手打。添加完報紅的話在根部局添加
xmlns:app="http://schemas.android.com/apk/res-auto"
HorizontalGridView同理,焦點在最左側時再向左移動焦點出不去也可以添加這條屬性,我看有人說針對HorizontalGridView是用app:FocusOutSideStart="true",經過測試之后發現這兩種列表的這個問題都是用focusOutFront的,FocusOutSideStart針對這個問題是不起作用的。從名字看,猜測應該是用來以列表方向的側面跳出列表的,那么VerticalGridView應該也是可以用到這個屬性的,當然,沒猜對的話可能是因為掐錯了手指頭,不提也罷!
同類型的屬性還有focusOutEnd, focusOutSideStart,focusOutSideEnd,做個記錄,以后查一下他們的作用
補充:做新版本的新發現,其實從名字可以看得出來,以HorizontalGridView為例子,focusOutFront是用來突破左側焦點邊界限制的,focusOutEnd作用於右側,也就是結尾
