键盘布局隐藏android操作栏?

Posted

技术标签:

【中文标题】键盘布局隐藏android操作栏?【英文标题】:Keyboard layout hiding android action bar? 【发布时间】:2012-01-03 22:30:29 【问题描述】:

在我在 XOOM 设备中运行的 android 应用程序中,当我单击 Edittext 时,键盘会打开并隐藏操作栏。我不希望发生这种情况,我该如何解决?例如,这是由平板电脑的 Google 通讯录应用程序完成的。

编辑: 我有几个用户需要填写的编辑文本。一开始,当用户点击底部的一个edittext时,键盘出现并隐藏了用户正在输入的edittext,所以他看不到他在输入什么。我发现它真的很糟糕,为了解决它,我刚刚添加到清单中:android:windowSoftInputMode="stateVisible|adjustPan" 但在那之后,现在屏幕会自行调整并隐藏操作栏。

Google 通讯录应用也能做到这一点,但它不会神奇地隐藏操作栏。他们是怎么做到的?

【问题讨论】:

您是否尝试将android:imeOptions="flagNoExtractUi"(或EditText.setImeOptions(...))添加到此EditText @Selvin 它没有解决问题。我刚刚更新了问题。 我也有同样的问题。我试过添加“adjustResize”,但没有帮助。 【参考方案1】:

使用adjustResize 代替adjustPan。如有必要,框架将始终通过滚动任何父视图来尝试将焦点元素保持在屏幕上。

如果您的 EditText 字段没有嵌套在某种滚动容器(例如 ScrollView)中,那么当键盘调整您的活动大小时,您的布局可能太高而无法完全显示。尝试将表单的布局包装在 ScrollView 中。如果您的应用在可能存在类似问题的小屏幕设备上运行,这也将允许您的应用内容滚动。

【讨论】:

但我不想调整它的大小。隐藏一些内容对我来说没问题。屏幕上唯一需要显示的内容是选定的编辑文本和操作栏。就像 Google 通讯录一样。他们是怎么做到的? 他们通过使用adjustResize来做到这一点。 :) 如果您在使用键盘遮挡内容时遇到问题(并且您会在某些具有不同屏幕尺寸或更高键盘的设备上),那么您确实需要调整大小的行为。这使您可以使用滚动容器来保持活动内容在键盘打开时可访问。 谢谢。我需要同时调整调整大小和滚动视图。 我也有这个问题,但不同的是,我的编辑文本上方有一个列表,不能使用滚动容器。如果我在 edittext 聚焦时使用adjustResize,它会出现在列表上方,并且列表中的最后一项会被遮挡(列表不会向上推)。另一方面,如果我不使用adjustResize,当edittext 聚焦时,它会将所有内容向上推,但acionbar 是隐藏的,我也无法滚动到列表顶部。有人可以为此分享解决方案吗? @Sandra 你是怎么解决你的问题的?我现在也遇到了。

以上是关于键盘布局隐藏android操作栏?的主要内容,如果未能解决你的问题,请参考以下文章

在键盘存在时隐藏“底部导航栏” - Android

避免 android 软键盘调整布局大小。或回调隐藏视图

android studio 点击布局文件隐藏弹出的键盘。

怎么修改android状态栏布局

Android Soft Keyboard在重新打开时隐藏EditText

软键盘隐藏操作栏