Android Studio Target 35 升級指南:修復狀態列覆蓋內容的 UI Bug
Google 最近強制所有 Android APP 開發 Target 必須改為 35 或以上,否則就不讓活。根據官方建議,程式需要用到 Insets 這個 API。

因為我自己不是很專業的 Android 開發者,一開始就中招了,沒認真看官方建議,直接把 Target 改為 35 後就提交上陣。為何我敢這樣做,因為我的手機是 Android 14 ,不會受影響;直到同事哇哇叫,說 APP 改版後,他手機 Android 15 出現重疊問題。
總歸一句話,我應該用 pixel 的
照著官方說法,我試了幾次,解決方式如下(Java)
public static void setView(Activity act,View view){
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.VANILLA_ICE_CREAM) return;
WindowCompat.enableEdgeToEdge(act.getWindow());
ViewCompat.setOnApplyWindowInsetsListener(view, (v, insets) -> {
Insets bars = insets.getInsets(
WindowInsetsCompat.Type.systemBars()
| WindowInsetsCompat.Type.displayCutout()
);
v.setPadding(bars.left, bars.top, bars.right, bars.bottom);
return WindowInsetsCompat.CONSUMED;
});
}
當然還有一些內嵌重疊問題,如手勢內嵌,因為我的程式沒有這樣設計,無法測試,請以官方文件建議修改。