【发布时间】:2016-09-27 13:30:13
【问题描述】:
对我的问题的最佳描述在
Keyboard layout hiding android action bar?
我将在此处粘贴引用: “我也有这个问题,但不同的是,我的 edittext 上方有一个列表,不能使用滚动容器。如果我在 edittext 聚焦时使用adjustResize,它会显示在列表上方,最后一个项目来自列表变得模糊(列表未向上推)。另一方面,如果我不使用 adjustResize,当 edittext 聚焦时,它会将所有内容向上推,但 acionbar 是隐藏的,而且我也无法滚动到列表顶部。可以有人为此分享解决方案吗?“
所以
- 我有一个工具栏
- 然后是聊天内容
- 然后是用于发送消息的底部栏(editText 和按钮)
现在,当我点击 ediText 并打开软键时,我不希望我的工具栏折叠和隐藏,但我确实希望我的聊天内容向上滚动,所以在底部条目上方我会看到最后一个来自聊天内容的消息(在 listView 中)。
我已经为 Activity adjustResize 或 adjustPan 尝试了多种组合,但它们都不起作用。即使在 CoordinatorLayout 和 AppBarLayout 中包装了工具栏,但仍然没有结果。我的内容被正确推送/滚动,但工具栏隐藏或工具栏保持不变,但 softKeyboard 与最后几条消息重叠。
我分享的解决方案是一种变通方法。我实现了一个函数 scroll(),如果有新消息到达,则滚动我的内容,所以这是我之前实现的一个函数。我错过了另一部分,即检测软键盘何时打开,以便我可以滚动我的内容。
在这里很容易找到 How to check visibility of software keyboard in Android?
我希望有人会发现此解决方法有用并至少再睡几个小时。
注意: 向上滑动内容的动画与 softKeyboard 向上滑动不一致。打开键盘后,我会滚动,这是不同步的。这只是一个瞬间。但在找到使用原生 Android 组件或布局编排此事件的更好解决方案之前,我并不关心这一点。
【问题讨论】:
标签: java android android-layout android-softkeyboard