2016-09-27 108 views
2
我的问题

最好的说明是在防止键盘布局隐藏工具栏,但显示滚动内容

Keyboard layout hiding android action bar?

我会贴引号的位置: “我有这个问题,也可是不同的是,我在edittext上面有一个列表,不能使用滚动容器,如果在edittext聚焦的时候使用adjustResize,它会出现在列表的上方,列表中最后的项目会被遮挡(列表不会被推上去)另一方面,使用adjustResize时,当edittext被集中时,它会将所有东西都拉出来,但是acionbar是隐藏的,我也不能滚动到列表的顶部。一个共享这个解决方案?

enter image description here enter image description here

所以

  • 我有一个工具栏
  • 然后聊天内容
  • ,然后将消息发送底杆(EDITTEXT和按钮)

现在,当我点击一个ediText,并且软键b打开时,我不希望我的工具栏崩溃并隐藏,但我确实希望我的聊天内容向上滚动,因此,在底部条目上方,我将看到最后一条消息聊天内容(在listView中)。

我已经尝试了一些活动adjustResize或adjustPan的组合,但他们都没有工作。甚至包裹在CoordinatorLayout和AppBarLayout中的工具栏,但仍然没有结果。要么我的内容被正确推送/滚动,但工具栏隐藏或工具栏保持不变,但softKeyboard与最后几条消息重叠。

我分享的解决方案是一种解决方法。我已经实现了一个函数scroll(),在新消息到达时滚动我的内容,这是我之前实现的一个函数。我错过了另一部分,那就是检测softKeyboard何时打开,以便滚动我的内容。

这是很容易找到这里 How to check visibility of software keyboard in Android?

我希望有人会发现这个解决办法有用,至少睡了几个小时。

注意: 滑动内容的动画与softkeyboard滑动不一致。键盘打开后,我做滚动,这是不同步的。这只是一个单元。但直到我找到一个更好的解决方案来使用本机Android组件或布局编排此事件时,我才会关心这一点。

回答

0

所有上述的最简单有效的解决方法是简单地使用以下命令:

listView.setTranscriptMode(ListView.TRANSCRIPT_MODE_NORMAL);