【问题标题】:Prevent Keyboard layout hiding toolbar but reveal scroll content防止键盘布局隐藏工具栏但显示滚动内容
【发布时间】: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


    【解决方案1】:

    上述所有问题的最简单和最好的解决方案是简单地使用以下内容:

    listView.setTranscriptMode(ListView.TRANSCRIPT_MODE_NORMAL);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-10
      • 1970-01-01
      • 1970-01-01
      • 2017-11-30
      • 2014-04-13
      • 1970-01-01
      • 2018-09-18
      • 2012-01-03
      相关资源
      最近更新 更多