键盘出现时如何将输入布局向上移动

问题描述 投票:0回答:2

如果其他主题中已经解决了任何类似的问题,我很抱歉。我有一个屏幕,其根是框架布局。

  • 后面的布局内容很多
  • 前面的布局包含编辑文本以允许用户输入一些文本。通常,它位于屏幕底部。

我期望的是当键盘出现时,布局包含的内容保持不变,而布局包含编辑文本向上移动到键盘。

请检查下面的图片

enter image description here

有什么解决方案可以实现这一目标吗?

非常感谢您的帮助。

android android-layout user-interface keyboard
2个回答
0
投票

基本上您需要的是编辑

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" />

更多信息可以在这里找到。


0
投票

抱歉这么晚才回复,我最近也遇到了同样的问题。

目前,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
        }

注:

  • ime()插入类型确保与不同键盘的兼容性 高度和系统 UI 配置。
  • 我通过乘以调整底部填充级别
    imeInsets.bottom
    0.88 以满足我的设计需求。
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.