使用adjustPan作为软输入模式时,是否可以始终显示操作栏?

时间:2013-03-08 14:59:27

标签: android android-layout android-actionbar android-softkeyboard android-windowmanager

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

要显示更多列表,我想在滚动时删除键盘并获得更平滑的滚动行为,我想更改以便使用SOFT_INPUT_ADJUST_PANadjustPan)。但是,如果我更改为adjustPan,整个视图(包括操作栏)将被推高。我希望列表视图被推送,但操作栏始终保持在顶部。这可能吗?如果没有,是否可以使用adjustResize并获得平滑的调整大小动画?

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

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

1 个答案:

答案 0 :(得分:0)

for adjustPan

将以下代码放在manifest.xml文件

中的活动声明行中
android:windowSoftInputMode="adjustPan"

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

用于在scrall

时移除键盘

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

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

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