頭條屏幕適配問題彙總及解決,此次你值得嘗試

因爲該方案確實值得咱們使用,因此藉助你們開源的力量一塊兒來完善,此次你值得嘗試。java

適配的原理及怎麼適配?

Android 屏幕適配從未如斯簡單(8月10日最終更新版),因爲文章寫的較早,請用 1.19.2 版本及以上來完美適配。android

如何建立 mdpi 1080 * 1920 設備的預覽圖?

建立新的模擬器設備,而後修改分辨率和屏幕尺寸使其達到 mdpi 便可。git

webview 加載後發現 density 復原?

因爲 WebView 初始化的時候會還原 density 的值致使適配失效,繼承 WebView,重寫以下方法:github

@Override
public void setOverScrollMode(int mode) {
    super.setOverScrollMode(mode);
    ScreenUtils.restoreAdaptScreen();
}
複製代碼

如何讓系統 View 尺寸正常?

後面提到的 Dialog 和 Toast 其實均可以用用這種解決方案,就是在 inflate 相關 View 以前調用 ScreenUtils#cancelAdaptScreenshow 以後調用 ScreenUtils#restoreAdaptScreen 便可,這樣就可讓系統 View 顯示正常尺寸。web

顯示 dialog 尺寸有問題?

若是你適配傳入的不是 mdpi 下的尺寸,而是 xxhdpi,那麼可能會致使 AlertDialog 跑到屏幕外邊,因此在文章中我也提到了只用 mdpi 來適配,正常狀況的 mdpi 是會呈現比較小的尺寸,若是你要取得和原生一致的效果,那就利用上面提到的「如何讓系統 View 尺寸正常」封裝下在 Dialog 顯示前調用 ScreenUtils#cancelAdaptScreen,Dismiss 後根據需求看是否須要 ScreenUtils#restoreAdaptScreen;或者你也能夠給 Dialog 定製統一的 styles 來解決尺寸(<item name="android:windowMinWidthMinor">576dp</item> <!-- 佔 80% 屏寬 720 * 0.8 = 576 -->)、字體的問題。固然,若是項目組有封裝好的 Dialog,那麼統一修改這個 Dialog 庫的尺寸便可。app

Toast 尺寸有問題?

使用 1.19.1 及以上版本的 ToastUtils 來顯示 Toast 不會有這個問題(解決之道就是上面提到的「如何讓系統 View 尺寸正常」),固然你也能夠本身封裝不用個人 ToastUtils;或者參照 CustomToast 來自定義 Toast 佈局。ide

更大尺寸的設備想要顯示更多的內容?

可使用 sw 的方案來解決尺寸更大的設備能夠顯示更多的內容,本方案和 sw 並無衝突,因此若是你須要在全面屏或者大屏設備顯示更多的內容能夠建立新的 dimens 來解決,這樣就能夠作到在某一尺寸範圍內的設備顯示效果都一致,解決了某些人老是口口聲聲說「更大的屏幕就應該獲取更多的信息啊」。佈局

後續若是還有問題能夠到 GitHub 屏幕適配問題彙總及解決 中提 issue

相關文章
相關標籤/搜索