如果其他主题中已经解决了任何类似的问题,我很抱歉。我有一个屏幕,其根是框架布局。
我期望的是当键盘出现时,布局包含的内容保持不变,而布局包含编辑文本向上移动到键盘。
请检查下面的图片
有什么解决方案可以实现这一目标吗?
非常感谢您的帮助。
基本上您需要的是编辑
AndroidManifest.xml
中的活动标签:
<!-- Configures the keyboard to be hidden right away and for UI to keep content as is when shown -->
<activity
android:name="com.example.myactivity"
android:windowSoftInputMode="stateHidden|adjustPan" />
更多信息可以在这里找到。
抱歉这么晚才回复,我最近也遇到了同样的问题。
目前,Android 建议在您的应用程序中启用“边缘到边缘”。如果您在最新版本的 Android Studio 中打开一个新项目,您还会看到默认提供了“edge-to-edge”代码。
如果启用它,您可以使用
ViewCompat.setOnApplyWindowInsetsListener
根据插图对视图应用填充、边距。
这是我解决问题的方法:
enableEdgeToEdge()
setContentView(binding.root)
ViewCompat.setOnApplyWindowInsetsListener(binding.root) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
val imeInsets = insets.getInsets(WindowInsetsCompat.Type.ime())
v.setPadding(
systemBars.left,
systemBars.top,
systemBars.right,
systemBars.bottom + (imeInsets.bottom * 0.88).roundToInt()
)
CONSUMED
}
注:
imeInsets.bottom
0.88 以满足我的设计需求。