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

windowSoftInputMode=adjustResize下Kotlin Compose BottomSheet异常

解决BottomSheetScaffold文本框键盘弹出布局错乱问题

问题根源

在Manifest中设置android:windowSoftInputMode="adjustResize"后,系统会在键盘弹出时调整窗口尺寸,但BottomSheetScaffold的布局计算依赖原始窗口尺寸,两者逻辑冲突导致布局错乱。

解决方案

方案1:修改Manifest软键盘模式

将android:windowSoftInputMode="adjustResize"替换为:

android:windowSoftInputMode="adjustPan"

该模式下系统会平移窗口而非调整尺寸,BottomSheet的布局不会被打乱。需注意此模式可能导致顶部布局被键盘遮挡,适合BottomSheet作为核心交互区域的场景。

方案2:在Compose布局内适配

若必须保留adjustResize,可给BottomSheet的内容添加imePadding()修饰符,让内容自动避开键盘:

BottomSheetScaffold(
    sheetContent = {
        Column(
            modifier = Modifier
                .fillMaxWidth()
                .imePadding() // 添加该修饰符适配键盘
        ) {
            TextField(value = "", onValueChange = {})
            // 其他内容
        }
    }
) {
    // 主内容区域
}

如果需要更精细的布局控制,也可以自定义BottomSheetBehavior监听键盘状态,动态调整BottomSheet高度,但实现相对复杂。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 18:22:00