本文为原创文章,转载请标明出处

今天做了一个如下图所示的页面。

iOS 端毫无 bug,Android 端却出现了问题。当软键盘弹出后,Android 端的 tabs 移到了软键盘的上面,再仔细一看,整个界面都被压扁了,输入框也不知道去哪儿了。

于是去翻 Ionic Native - Keyboard 文档,并未发现有能解决该问题的方法。于是又想到是不是 android:windowSoftInputMode 属性出了问题,打开 AndroidManifest.xml,发现 Ionic 3 将 android:windowSoftInputMode 属性默认设置为 adjustResize 值,将属性值修改为 adjustPan|stateHidden,问题完美解决。

接下来就详解一下 android:windowSoftInputMode 属性。

属性值一共有以下9个:stateUnspecifiedstateUnchangedstateHiddenstateAlwaysHiddenstateVisiblestateAlwaysVisibleadjustUnspecifiedadjustResizeadjustPan

stateUnspecified
未指定软键盘的状态,系统将自动选择一个合适的状态或依赖于主题中的设置。

stateUnchanged
当前界面的软键盘状态取决于上一个界面的软键盘状态。

stateHidden
用户选择 Activity 时,软键盘总是被隐藏。

stateAlwaysHidden
当该 Activity 主窗口有输入需求时,软键盘总是被隐藏。

stateVisible
软键盘通常可见。

stateAlwaysVisible
用户选择 Activity 时,软键盘总是可见。

adjustUnspecified
未指定软键盘与界面内容之间的显示关系。

adjustResize
该 Activity 总是调整屏幕的大小以便留出软键盘的空间。

adjustPan
当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户总能看到输入的内容。

如有不当之处,请予指正,谢谢~

Ionic3学习笔记(九)关于 Android 端软键盘弹出后界面被压缩的问题的更多相关文章

  1. 周记3——解决fixed属性在ios软键盘弹出后失效的bug

    这周在做空间(“类似”qq空间)项目.首页是好友发表的说说,可以针对每条说说进行评论,评论框吸附固定在屏幕底部.此时,Bug来了...在ios上,软键盘弹出后fixed属性失效了.后来发现,ios绝大 ...

  2. android控制软键盘弹出方式

    android一把自带的软键盘弹出方式是会将布局顶上去,造成UI乱套的情况. 解决办法:方法一:在你的activity中的oncreate中setContentView之前写上这个代码getWindo ...

  3. KeyboardUtil【软键盘弹出后输入框上移一定的高度】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 演示获取软键盘高度并保存,然后根据输入框的原有位置是否被软键盘挡住了,如果被挡住了则将整体页面上移一定的高度,当软键盘隐藏的时候再下 ...

  4. webrtc学习笔记2(Android端demo代码结构)

    最近正在修改webrtc的Android端demo和服务器交互的内容,介绍一下demo的大体结构吧,以便能快速回忆. 环境:Android5.0以上.libjingle_peerconnection_ ...

  5. Android中软键盘弹出时底部菜单上移问题

    当在Android的layout设计里面如果输入框过多,则在输入弹出软键盘的时候,下面的输入框会有一部分被软件盘挡住,从而不能获取焦点输入. 解决办法: 方法一:在你的activity中的oncrea ...

  6. Android 判断软键盘弹出并隐藏的简单完美解决方案

    最近项目中有一个编辑框,下面是个ListView.在触发编辑框弹出软键盘后,ListView还能滑动,并且ListView的item还能响应单击.这样的体验效果很不好.于是便想在滑动或单击item时判 ...

  7. Android中软键盘弹出时关于布局的问题

     当在Android的layout设计里面如果输入框过多,则在输入弹出软键盘的时候,下面的输入框会有一部分被软件盘挡住,从而不能获取焦点输入. 解决办法: 方法一:在你的activity中的oncre ...

  8. Android解决软键盘弹出将布局顶到上面

    有时候我们在下面的布局是一个RadioGroup,然后当页面中的EditText获得焦点的时候,会将地步的RadioGroup顶起来,这时候我们只需要在AndroidMainfest中RadioGro ...

  9. 关于ListView中EditText在软键盘弹出后的焦点问题

    转自:http://www.cnblogs.com/haofei/p/3305030.html 在ListView中,每次弹出软键盘后就会重新调用getView()方法,导致EditText失去焦点. ...

随机推荐

  1. android设备内部添加apn信息

    由于工作原因今天需要给多台android设备中写入某张sim卡的apn相关信息,虽然可以通过sqlite命令写sql语句来写入到设备中,但设备一多起来就太低效了,所以在学习的过程中摸索着写了一个将ap ...

  2. Oracle之纵向数据转换横向数据

    资源二  来源  http://www.cnblogs.com/gkl0818/archive/2009/02/25/1398078.html 1.固定列数的行列转换如student subject ...

  3. Python笔记_第三篇_面向对象_3.重载(overloading)和重写(overriding)

    1. 重载: overloading:就是将函数重新定义一遍. 1.1 __str__( )和__repr__( )的重载: 格式: __str__( ):在调用print打印对象时自动调用,是给用户 ...

  4. 92.QuerySet API中的切片操作详细使用

    切片操作: 使用情况分析:在我们的CSDN的个人主页会显示我们个人发布的多篇文章(20篇),如果还想查看更多,就可以点击最下方的"查看更多"按钮,在这里对首页的文章的个数的限制就用 ...

  5. 一.Memcached企业服务

    1.Memcached是什么,有什么作用?            Memcached是一个开源的.高性能的内存缓存软件,从名称上看Mem就是内存的意思,而Cache就是缓存的意思.          ...

  6. python 3.6

    安装了最新版anaconda3-4.3 发现jupyter-notebook 少了一些东西.需要手工安装 https://github.com/Anaconda-Platform/nbpresent

  7. jackson解析处理JSON

    package com.ruoyi.common.json; import java.io.File; import java.io.IOException; import java.io.Input ...

  8. Windows 常用配置 - 启用长路径

    Windows 启用长路径支持 打开注册表编辑器:regedit 找到如下路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSyte ...

  9. c语言中,为什么以下程序直接按”Enter“也就是回车程序不结束?

    /************************************************************************* > File Name: system.c ...

  10. LGOJ1861 星之器

    前置扯淡 我对这个题目的评价和网上各位大佬的一样:人类智慧题 (显然我不具有人类智慧--) Description link 现在有一个 \(n \times m\) 的矩阵\(A\),里面的每个元素 ...