有TabLayout時,在旋轉屏幕後需要設置當前所在的位置,使其顯示正常
-
使用了AppBarLayout 需注意需在xml中添加:
android:focusable="false" android:touchscreenBlocksFocus="false"
否則會導致底部的View的焦點獲取不正常。
由於需要適配阿拉伯語,引入了ViewPager2,但由於焦點事件的問題,在多個Fragment頁面中,如item的左右沒有其它佈局,但其它頁面在它左邊或者右邊,焦點會跳轉其它頁面中去(但是顯示的頁面還是在當前頁面),導致用戶以為失去了焦點,無法正常進行操作,需要替換為FrameLayout。
替換後,在旋轉屏幕後需要注意fragmentManager里是否還有fragments,如有需判斷是否可以複用,不能複用則需要remove,否則會出現重複Fragment實例化的問題。-
當前頁面如有view需要獲取焦點,會對焦點事件由所影響,如文字的跑馬燈,會使焦點事件位置不在起始位置,只能適配是從焦點點擊過來的事件,通過view.isInTouchMode() ,來自助獲取焦點。
if (!view.isInTouchMode()) { needFocusView.requestFocus(); }
使用PopupWindow 需注意設置 setFocusable(true); , 否則會導致PopupWindow無法獲取到焦點。
如是需要加載更多的地方,需要重寫view滾動監聽回調,使其加載更多正常工作。
有些位置需要監聽onkey事件,如是Fragment則需從Activity中把key事件傳遞過去。
有些view非常的長,但是沒有點擊事件,頁面顯示不了下一個需要獲取到焦點的view,就會出現失去焦點或滾動不正常的問題,如能設置能獲取焦點則最好設置可以獲取焦點(android:focusable="true")。
使用了AppBarLayout 後,有些位置需要滾動後隱藏起來,需要注意適配滾動處。
自定義的View需要注意,如不顯示的View需隱藏起來(設置view.visibility = View.GONE),否則會出現不顯示的view獲取到了焦點,導致用戶無法正常使用。
UI的間隔最好是上下左右都有,這樣對後續的添加焦點事件的邊框會非常友好。
Android 焦點適配注意事項
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- GitHub上受歡迎的Android UI Library 內容 抽屜菜單 ListView WebView Sw...
- 每個人都想活出富有意義的人生,但很多人從沒想過該如何開始及該怎麼去做。「活出意義」這本書可以是一幅心靈藍圖,能夠指...
- 每當夜深人靜時,你是否曾經回想:我今天到底做了什麼?我有大把的時間,到底都花到哪裡去了?你是否曾經夢想「有朝一日」...