使用 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_RESIZE
(adjustResize
)作为软输入模式,滚动时不关闭键盘。
为了显示更多列表,我想在滚动时移除键盘并获得更流畅的滚动行为,我想更改为使用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 问题