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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 动态改变界面 软键盘覆盖了界面相关的知识,希望对你有一定的参考价值。

android 开发中遇到如下问题 当EditText被点击后出现了软键盘 覆盖了下面的界面 如何在软键盘打开的时候把被覆盖的界面放到软键盘上方去?

可以在清单文件AndroidManifest.xml中修改activity的windowSoftInputMode属性为"adjustPan"

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

  android:windowSoftInputMode是设置活动的主窗口如何与包含屏幕上的软键盘窗口交互的属性


有以下取值

"stateUnspecified"

软键盘的状态 (是否它是隐藏或可见 )没有被指定。系统将选择一个合适的状态或依赖于主题的设置。

这个是为了软件盘行为默认的设置。


"stateUnchanged"

软键盘被保持无论它上次是什么状态,是否可见或隐藏,当主窗口出现在前面时。


"stateHidden"

当用户选择该 Activity时,软键盘被隐藏——也就是,当用户确定导航到该 Activity时,而不是返回到它由于离开另一个 Activity。


"stateAlwaysHidden"

软键盘总是被隐藏的,当该 Activity主窗口获取焦点时。


"stateVisible"

软键盘是可见的,当那个是正常合适的时 (当用户导航到 Activity主窗口时 )。


"stateAlwaysVisible"

当用户选择这个 Activity时,软键盘是可见的——也就是,也就是,当用户确定导航到该 Activity时,而不是返回到它由于离开另一个Activity。


"adjustUnspecified"

它不被指定是否该 Activity主 窗口调整大小以便留出软键盘的空间,或是否窗口上的内容得到屏幕上当前的焦点是可见的。系统将自动选择这些模式中一种主要依赖于是否窗口的内容有任何布局 视图能够滚动他们的内容。如果有这样的一个视图,这个窗口将调整大小,这样的假设可以使滚动窗口的内容在一个较小的区域中可见的。这个是主窗口默认的行为 设置。


"adjustResize"

该 Activity主窗口总是被调整屏幕的大小以便留出软键盘的空间


"adjustPan"

该 Activity主窗口并不调整屏幕的大小以便留出软键盘的空间。相反,当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分。这个通常是不期望比调整大小,因为用户可能关闭软键盘以便获得与被覆盖内容的交互操作。


所以选择adjustPan可以满足需求

参考技术A 北京时间12月7日谷歌发布了最新的Android 2.3平台。以下为Android官网列出的新平台八大亮点:
精致用户界面简约高速
Android 2.3用户界面Android 2.3用户界面

新的用户界面(UI)包含了多项改进,使该平台更加易学、快捷和省电。简化的颜色主题和黑色背景增强了提示条、菜单和UI其他部分的生动性和对比度。

更快、更直观的文字输入

新版本对Android软键盘进行了重新设计和优化,使文字输入和编辑更加快速。按键形状和位置的变化提升了敲击的准确性和速率。

一键文字选择和复制/粘贴
Android 2.3的一键选择功能Android 2.3的一键选择功能

当用户输入文本或浏览网页时,可以通过“按住不放”的操作快速选择文字,然后进行复制粘贴。

改进的耗电管理
Android 2.3的耗电管理Android 2.3的耗电管理

在管理应用方面,Android2.3采取了更加积极的策略。通过在合理情况下关闭后台应用,新系统确保了最高的性能和最长的续航时间。

对应用的控制
Android 2.3 的“管理应用”界面Android 2.3 的“管理应用”界面

在主界面和启动器(Launcher),“选项菜单”提供了“管理应用”界面的快捷方式。进入“管理应用”界面后,“运行中”( Running)选项卡列出了活跃应用及其占用的存储空间和内存。

互联网电话
Android 2.3 的SIP电话功能Android 2.3 的SIP电话功能

用户将可以与其他拥有SIP(会话发起协议)账号的用户进行互联网通话,可以向任何联系人添加SIP地址,并且通过Quick Contact或Dialer发起会话。

近程通信(Near-fieldcommunications)
Android 2.3 的近程通信功能Android 2.3 的近程通信功能

通过NFC Reader应用,用户可以阅读近程通信标签,并与之互动。该功能的典型应用是在饭店、商店或活动现场阅读标签,然后跳转到标签包含的网站URL进行注册或评价。

下载管理

通过Downloads应用,用户可以轻松查看浏览器、Email或其他应用正下载的文件。新的Downloads应用采用了全新的下载管理器,使管理和存储下载内容更加简单。
参考技术B 尝试一下 给整个布局外面套一层 scrollView本回答被提问者采纳

Android 底部按钮被软键盘顶起问题解决

参考技术A

我们目前的项目是采用单 Activity 多 Fragment 的架构模式, AndroidManifest.xml 内 MainActivity 的配置如下所示。

stateHidden
状态隐藏,如果我们设置了这个属性,键盘状态就一定是隐藏的,不管上个界面是什么状态,也不管当前界面有没有输入的需求,就是不显示软键盘。
adjustResize
调整大小状态,这个属性表示 Activity 的主窗口总是会被调整大小来保证软键盘的显示空间。如果界面中有可滑动控件,显示效果跟 adjustUnspecified 显示效果一样;如果界面中没有可滑动控件,软键盘可能会盖住一些控件(布局的位置不会发生变化,可能获取了焦点的控件被软键盘盖住)。
一般来说,我们的布局分为两种

第一种布局是不会出现软键盘把底部按钮顶起的情况,首先软键盘的打开实际上是一个 Dialog,而我们在配置文件内的 adjustResize 属性是在页面的根布局 decorView 的子 view 也就是一个线性布局内通过设置 paddingBottom = 软键盘高度,这样其实相当于把整个滚动布局的高度减少了,所以底部的按钮也只是变为需要滚动才能看到。
第二种情况通常为一个继续按钮始终处于页面的底部,中间的内容可以滚动,当根布局的内边距等于软键盘高度时,底部按钮就看起来像是被顶起。

1、监听软键盘的打开收起

2、修改 windowSoftInputMode
adjustPan
如果设置了这个属性,当软键盘弹出的时候,系统会通过布局的移动,来保证用户要进行输入的输入框在用户的视线范围内。如果界面没有可滑动控件,显示效果和 adjustUnspecified 效果一样;如果界面有可滑动控件,在软键盘显示的时候,可能会有一些内容显示不出来。

资料借鉴
Android中Activity的android:windowSoftInputMode属性

以上是关于android 动态改变界面 软键盘覆盖了界面的主要内容,如果未能解决你的问题,请参考以下文章

[Android UI界面] 软键盘覆盖edittext 使用ScrollView的详解、、高手快来吧

Android 监听软键盘的高度并解决其覆盖输入框的问题

Android 监听软键盘的高度并解决其覆盖输入框的问题

Android 监听软键盘的高度并解决其覆盖输入框的问题

android 如何解决软键盘遮挡界面

联想手机A65打电话时不显示软键盘怎么设置出来?