17

在我的应用程序中,我有一个带有页脚的ListView,其中包含一个带有EditText的自定义视图。顶部是一个操作栏。Activity 当前使用SOFT_INPUT_ADJUST_RESIZE( adjustResize) 作为软输入模式,并且在滚动时不会关闭键盘。

为了显示更多列表,我想在滚动时移除键盘并获得更平滑的滚动行为,我想更改以便使用SOFT_INPUT_ADJUST_PAN( adjustPan)。但是,如果我更改为adjustPan,则整个视图(包括操作栏)都会向上推。我希望推送列表视图,但操作栏始终位于顶部。那有可能吗?如果没有,是否可以使用adjustResize并获得平滑的调整大小动画?

到目前为止,我已经尝试过:

  • 请求Window.FEATURE_ACTION_BAR_OVERLAY,但这并没有帮助,尽管文档听起来很有希望。
  • 根据软键盘是否可见来移动操作栏容器,最终看起来像一个非常不稳定的黑客,所以我放弃了它。
  • 到目前为止adjustResize,由于滚动时发生的绘图行为,我已经排除了,同时最小化键盘和调整列表视图的大小。有没有办法制作平滑的动画调整大小?
4

1 回答 1

0

调整盘

将以下代码放在 manifest.xml 文件中的活动声明行中

android:windowSoftInputMode="adjustPan"

喜欢

<activity
        android:name="activity"
        android:windowSoftInputMode="adjustPan" >
</activity>

用于在滚动时删除键盘

当你得到结果时执行下面的代码

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);

通过这种方式,您可以从屏幕上删除键盘。

于 2015-04-17T08:46:49.530 回答