当前位置: 首页 > 知识库问答 >
问题:

显示或隐藏Android软键盘时调整布局

邓毅
2023-03-14

我的目标是实现大多数消息传递应用程序(如Facebook Messenger、Viber、What's up)在显示附件表时所做的事情。如果软键盘可见并且用户想要附加某些东西,则键盘是隐藏的,附件表会在其位置呈现。

为了实现这一点,应该在根视图大小更改时更改布局。否则,在显示/隐藏键盘之前不久应用布局更改时,就会出现图形故障。

如果我可以在键盘隐藏的确切时刻更改我的布局,我可以把它做好。我尝试过使用onGlobalLayoutListener但没有达到预期的结果。

共有3个答案

阚允晨
2023-03-14

要了解布局是否因键盘(dis)的出现和对更改的操作而发生更改,最好的位置是根布局的内部。

更详细地说,我制作了一个自定义的LinearLayout,它用作我的根布局。我覆盖了onMeasure,并计算了当前键盘的高度。根据键盘的高度以及附件网格是否应可见,我会更改附件网格的可见性。我甚至可以将网格的高度设置为键盘的高度。

结果显示,网格始终位于键盘下方,文本视图保持在相同的垂直位置。

奚飞星
2023-03-14

使用此代码会很有帮助。

android:windowSoftInputMode="adjustNothing"
仲浩旷
2023-03-14

在活动清单中添加此行。

 <activity
        android:name="com.your.Activity"
        android:windowSoftInputMode="stateHidden|adjustPan" />
 类似资料:
  • 我想在键盘出现时重新定位布局,例如在编辑文本字段时,以便在聚焦字段上获得可见性。我尝试了WindowsofInputMode,但没有任何区别。如何到达它?非常感谢。

  • 我的问题是我需要知道键盘隐藏和显示事件,如何找出这一点?

  • 我有一个有碎片的活动。让我们假设一个带有事物列表的列表片段。现在我想让用户添加一个东西,所以我使用FragmentManager将列表片段替换为具有EditText的insert片段。EditText具有焦点并且光标正在闪烁。但软键盘打不开。同样的事情反过来:如果用户输入了新的东西并将其添加到列表中,我将插入片段替换回列表片段。但尽管不再有EditText了,键盘却无法关闭。 对此,正确的实施方式

  • 我有一个AutoCompleteTextView,它像往常一样在用户键入3个字母后提供建议。一旦我触摸建议列表,我想隐藏软键盘一次。我在下面用表格布局所做的只是在单击除建议列表之外的任何地方时隐藏键盘。 可扩展置标语言 爪哇岛 用于自定义列表的 XML

  • 问题内容: 首先,我已经看到了该线程。我尝试了那里给出的可接受的方法。 我的应用程序中有两个屏幕。 第一个有2个EditText,一个是用户名,另一个是密码 第二个有一个ListView和一个EditText-过滤listView 在我的第一个屏幕中,我希望用户名EditText专注于启动,并且Keyboard应该可见。这是我的实现(通过删除不必要的/不相关的代码进行简化)。 app_login.

  • 大家早上好,当显示键盘时,我有一个关于调整布局大小的小问题。 在清单中,我有调整调整大小,我也试图使用调整潘,但我有问题与滚动的回收器视图。 我的布局代码是: 谢谢,谁能帮我