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

fej*_*ejd 15 android android-layout android-softkeyboard android-windowmanager android-actionbar

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

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

到目前为止,我尝试过:

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

Sam*_*nga 0

用于平移调整

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

android:windowSoftInputMode="adjustPan"
Run Code Online (Sandbox Code Playgroud)

喜欢

<activity
        android:name="activity"
        android:windowSoftInputMode="adjustPan" >
</activity>
Run Code Online (Sandbox Code Playgroud)

用于在滚动时删除键盘

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

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
Run Code Online (Sandbox Code Playgroud)

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