中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

AndroidTV 的焦點控制問題

發布時間:2020-06-18 08:44:59 來源:網絡 閱讀:4705 作者:DavidWillo 欄目:移動開發

   最近在做有關安卓TV的相關項目,與手機端的安卓開發不同的是,TV端需要我們對焦點進行一定的處理,才使得整個程序的邏輯符合我們的要求。在電視上進行操作,一般只能通過遙控的上下左右以及確認鍵來進行焦點的轉移。而原生的安卓系統已經為我們做了默認的焦點獲取處理,而這個默認的焦點則是自動選擇該方向上距離最近的一個目標獲得焦點,注意,這里的距離未必是直線距離,更多時候是該方向坐標的距離,比如:

AndroidTV 的焦點控制問題

   在這種情況下,在item1按下右鍵,item0將獲得焦點,而在item0按下下鍵,item1將獲得焦點,這往往會與我們的操作習慣不符。這時候就需要我們去控制焦點。當然了,最理想的情況是讓系統自動幫我們處理焦點的獲取,我們的布局可以做出適當的調整來使得焦點的變化符合邏輯,而在迫不得已的情況下,我們也可以通過以下的思路來改變。

   1.在XML屬性布局文件中,通過設置nextFocusDown , nextFocusLeft ,nextFocusRight ,和nextFocusUp,這些屬性的值來明確焦點從當前view轉移后的view的對應id。

   2.通過設置focusable屬性,來屏蔽部分控件的焦點獲取。

   3.通過代碼中的requestFocus來在某一時刻使某控件強制獲得焦點。

   4.通過ViewTreeObserver.OnGlobalFocusChangeListener來監聽全局的焦點變化,在焦點變化時進行代碼操作。

   5.對特定布局的按鍵事件進行攔截,然后手動設置焦點變化。

   6.利用listview、gridview等adapterview的特性,當整體獲得焦點時,再對item進行焦點分發,比如在需要保存選中狀態的應用場景。

   暫時我用到的主要是這些做法,日后可能會繼續進行補充。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

北流市| 梁河县| 东乡族自治县| 张家川| 祁东县| 佛坪县| 丰台区| 宣武区| 运城市| 麦盖提县| 岗巴县| 平舆县| 洞头县| 芒康县| 扶余县| 司法| 望城县| 洛川县| 阳原县| 南汇区| 宜章县| 宁明县| 台北市| 巴彦淖尔市| 浦城县| 贞丰县| 临武县| 临沭县| 淮安市| 丹东市| 左权县| 耿马| 上蔡县| 霍山县| 阿克陶县| 米脂县| 桐乡市| 育儿| 涪陵区| 金华市| 华亭县|