You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Target SDK至35并调用enableEdgeToEdge()后仍无法实现全面屏

全面屏显示异常排查方案(Fragment + Jetpack Compose 架构)

1. 核对主题配置

确保App主题继承自无ActionBar的Material3主题(如Theme.Material3.DayNight.NoActionBar),并在styles.xml/theme.xml中添加以下属性:

<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>

若使用Compose主题,避免在MaterialTheme中覆盖窗口相关配置。

2. 确认enableEdgeToEdge()调用时机

  • Activity中调用:必须在setContent之前执行:
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge() // 此步骤要在setContent前
        setContent {
            YourAppTheme {
                // Compose界面内容
            }
        }
    }
}
  • Fragment中调用:在onViewCreated内执行,确保Fragment视图已初始化:
class HomeFragment : Fragment() {
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        requireActivity().enableEdgeToEdge()
        // 也可直接设置窗口标记兜底
        requireActivity().window.setFlags(
            WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
            WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
        )
    }
}

3. 适配Compose内容内边距

启用edge-to-edge后,状态栏/导航栏会覆盖Compose内容,需添加内边距适配:

setContent {
    YourAppTheme {
        val windowInsets = WindowInsets.systemBars.asPaddingValues()
        Box(
            modifier = Modifier
                .fillMaxSize()
                .padding(windowInsets)
        ) {
            // 你的Compose界面内容
        }
    }
}

Fragment中的Compose内容同理,需获取当前窗口insets添加padding。

4. 检查Manifest与Gradle配置

  • AndroidManifest.xml中确保无android:resizeableActivity="false",并添加:
<meta-data android:name="android.max_aspect" android:value="2.1" />
  • 确认Gradle中targetSdkVersion确实设置为35:
android {
    defaultConfig {
        targetSdk = 35
    }
}

5. 排查第三方库/自定义View干扰

部分第三方UI库或自定义View可能修改窗口布局参数,可暂时移除第三方库测试,或检查自定义View的LayoutParams是否强制限制了布局边界。


内容的提问来源于stack exchange,提问作者Jaloliddin Gulomov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 04:42:35