像現在市面上新出的手機,例如華為P30 pro,小米9,iPhone XS MAX,屏占比都驚人的達到90%以上,這些手機具備了以下幾個特點
- 大,屏占比高,長寬比都不再是16:9,都達到了19.5:9甚至是更高
- 短邊的像素、density的取值都是一樣的,所以需要適配的是長邊
他們具備以上特點的同時帶了以下問題
- 傳統布局的高度不足,導致上下留黑邊
- 基於屏幕頂部或底部的布局,如彈框,在全面屏手機上會發生位移
- 安全區域問題
解決方案
應用通過如下兩周方法修改AndroidManifest.xml均可以默認全屏顯示:
- 1.針對Activity添加android:resizeableActivity = "true",此設置只針對Activity生效,且增加了此屬性該activity也會支持分屏顯示
- 2.設置targetSdkVersion>=26,也就是O版本
應用通過如下兩種方式局可以設置應用支持的最大顯示比例,如果應用設置的支持的最大比例是2,而設備實際比例是2.5,則還是無法全屏顯示,會出現黑邊:
- 1.添加android:MaxAspectRatio,此設置項均可以針對Application和Activity生效,對應的是應用支持的最大比例,此屬性需要基於O版本開發環境才可以編譯通過
- 2.添加android.max_aspect
<!--適配全面屏-->
<meta-data
android:name="android.max_aspect"
android:value="2.1"
/>
對於Android的全面屏適配以上都是在Native部分需要做的處理,JS部分的要求主要是要注意在長邊更長的情況下圖標,圖片的適配