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

Posted

技术标签:

【中文标题】使用 adjustPan 作为软输入模式时是不是可以始终显示操作栏?【英文标题】:Is it possible to always show the action bar when using adjustPan as soft input mode?使用 adjustPan 作为软输入模式时是否可以始终显示操作栏? 【发布时间】:2013-02-24 04:03:28 【问题描述】:

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

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

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

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

【问题讨论】:

你搞定了吗?我有类似的问题 @fejd 我面临同样的问题。您能否更新一下您解决此问题的方法? @Ammar 不幸的是,我没有按照我想要的方式解决它(使用adjustPan)。我坚持使用 B 计划(adjustResize),我正在开发的平台调整了它的键盘动画,以便结果可以接受 @fejd 你能提供更多细节吗?我也在寻找更流畅的动画。 【参考方案1】:

用于调整盘

将以下代码放在 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);

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

【讨论】:

我认为这个答案并不能解决这里的问题

以上是关于使用 adjustPan 作为软输入模式时是不是可以始终显示操作栏?的主要内容,如果未能解决你的问题,请参考以下文章

android - windowSoftInputMode 问题

android 动态改变界面 软键盘覆盖了界面

Android 软键盘控制方法以及开发中遇到的一些问题。转

安卓弹出软键盘怎么把一部分布局顶上去

android webview载入网页 网页中文本框输入的问题

弹出软键盘时标题栏隐藏