1.首先说一下思路:

基本就是结合layout中ScrollView视图和AndroidManifest.xml中activity中的android:windowSoftInputMode属性配置实现;

2.要了解android:windowSoftInputMode相应的可以配置项:

activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。
这个属性能影响两件事情:
 1.当有焦点产生时,软键盘是隐藏还是显示
 2.是否减少活动主窗口大小以便腾出空间放软键盘
windowSoftInputMode的设置必须是下面列表中的一个值,或一个”state…”值加一个”adjust…”值的组合。在任一组设置多个值——多个”state…”values,例如&mdash有未定义的结果。各个值之间用|分开。
例如:<activity android:windowSoftInputMode="stateVisible|adjustResize". . . >
在这设置的值(除"stateUnspecified"和"adjustUnspecified"以外)将覆盖在主题中设置的值
各值的含义:
stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置
stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示
stateHidden:用户选择activity时,软键盘总是被隐藏
stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的
stateVisible:软键盘通常是可见的
stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态
adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示
adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间

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

例如:
AndroidManifest.xml文件中界面对应的<activity>里加入
android:windowSoftInputMode="adjustPan"   键盘就会覆盖屏幕
android:windowSoftInputMode="stateVisible|adjustResize"   屏幕整体上移(结合ScrollView实现)

android:windowSoftInputMode="adjustPan|stateHidden" 软键盘弹出,界面布局不变,这是解决弹出软键盘,界面整体被压缩的方式(会导致整个界面上移动,显示效果不好)

3.具体实现

3.1定义ScrollView

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:fitsSystemWindows="true"
    android:scrollbars="vertical"><LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"><TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/set_account_info"
            android:layout_marginTop="@dimen/business_management_title_top"
            style="@style/large_size_home_main_color_style"
            android:layout_gravity="center_horizontal"/><RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="@dimen/add_confirm_top"
            android:focusable="true"
            android:focusableInTouchMode="true"><TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/add_accout_bank_title"
                style="@style/cheque_collection_hint"
                android:layout_alignBaseline="@+id/accout_bank"
                android:text="@string/accout_bank"/><EditText
                android:layout_width="@dimen/add_account_code_w"
                android:layout_marginTop="@dimen/common_gap"
                android:layout_toRightOf="@+id/add_accout_bank_title"
                style="@style/cheque_collection_et"
                android:id="@+id/accout_bank"/>
        </RelativeLayout><Button
            android:id="@+id/confirm_add_btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/common_btn_style"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="@dimen/add_confirm_top"
            android:text="@string/confirmed" /></LinearLayout>
</ScrollView>

即ScrollVIew中包裹EditText等内容;

3.2为AndroidManifest.xml文件中activity添加android:windowSoftInputMode="stateHidden|adjustResize"属性

<activity
    android:name=".ui.AddAccountActivity" android:windowSoftInputMode="stateHidden|adjustResize"
    android:screenOrientation="landscape"/>

说明:

stateHidden:进入Activity默认隐藏键盘,通常需要看见整个页面,用户需要输入时点击输入框;

adjustResize:界面调整大小,键盘留在底部,ScrollView内容可以滚动,这样就继续可以看到整个页面;

ScrollView通常不要设置android:fillViewport="true"(作用就是布满整个屏幕即使内容高度没有屏幕的高度)属性(看实际需要吧),android:fillViewport="true"导致界面无法滚动,API 19,21有这个问题,API 27没有这个问题,主要看你适配的版本和需求了;

3.3效果图如下

参考:

https://blog.csdn.net/baidu_31093133/article/details/70848288

https://blog.csdn.net/u011622479/article/details/51161717

Android实现键盘弹出界面上移相关推荐

  1. android 设置键盘弹出动画,Android实现键盘弹出界面上移的实现思路

    1.首先说一下思路: 基本就是结合layout中ScrollView视图和AndroidManifest.xml中activity中的android:windowSoftInputMode属性配置实现 ...

  2. iOS UITextField输入框随键盘弹出界面上移

    //点击输入框界面跟随键盘上移 - (void)textFieldDidBeginEditing:(UITextField *)textField { CGRect frame = textField ...

  3. android 弹出遮盖界面,Android软键盘弹出界面遮挡解决方案。

    首先非常感谢 @陈旭金-小金子 我是根据他的博客修改而来. http://blog.csdn.net/u011692041/article/details/51933987#comments 他的原文 ...

  4. iOS UITextView 随键盘弹出界面上移

    - (void)textViewDidBeginEditing:(UITextView *)textView { CGRect frame = textView.frame; int offSet = ...

  5. unity android输入法,Unity打包Android 输入法弹出界面上移的问题

    Unity打包Android 输入法弹出界面上移的问题 Unity打包Android 输入法弹出界面上移的问题 在 AndroidMainifest 中对应activity中加入android:win ...

  6. [RN] React Native 键盘管理 在Android TextInput遮盖,上移等问题解决办法

    [RN] React Native 键盘管理 在Android TextInput遮盖,上移等问题解决办法 参考文章: (1)[RN] React Native 键盘管理 在Android TextI ...

  7. Android 软键盘弹出时布局内指定内容上移实现及问题解决

    Android 软键盘弹出时布局内指定内容上移实现及问题解决 参考文章: (1)Android 软键盘弹出时布局内指定内容上移实现及问题解决 (2)https://www.cnblogs.com/as ...

  8. Android软键盘手动显示、隐藏、布局上移和EditText上移

    主要实现:Android软键盘手动显示.隐藏.布局上移和EditText上移 AndroidManifest.xml <?xml version="1.0" encoding ...

  9. (转)Android软键盘弹出,界面整体上移

    原地址:http://blog.csdn.net/u011622479/article/details/51161717 在做搜索功能的时候,点击搜索框,搜索框获取焦点,键盘弹出:现在问题出来了,an ...

最新文章

  1. python安装文件乱码_python输出到文件乱码如何解决
  2. AB1601 PWM模块
  3. 02-Activity Monitors
  4. html禁止手机页面放大缩小
  5. ps -aux 和ps -elf 区别(查看进程)
  6. leetcode 19. Remove Nth Node From End of List | 19. 删除链表的倒数第 N 个结点(Java)
  7. C#XmlDocument无法读取utf-16文件
  8. 关于select的描述计算机,计算机二级考试MySQL数据库每日一练 12月21日
  9. 风险策略中的五层决策
  10. 计算机系统-电路设计08-T触发器内部电路实现
  11. 诺基亚自带36个铃声_vivo手机的6个隐藏功能,快开启,帮你玩转vivo
  12. 在Chrome中禁用同一来源政策
  13. angular页面打印局部功能实现方法思考
  14. Atitit 规范标准化的艺术 -----java jsr的实现 目录 1. Atitit jsr规范有多少个 407个。Jsr规范大全 1 2. Atitit jsr规范化分类 attilax总
  15. python一年365天_GitHub - yihong0618/Python365: Python365天精进计划
  16. java抓取豆瓣网页内容_爬虫实践--豆瓣电影当前上映电影信息爬取
  17. 直播、录屏软件OBS Studio下载安装操作教程
  18. html制作古诗念奴娇,《念奴娇·赤壁怀古》_苏轼的诗词_诗词名句网
  19. 初等变换和阶梯矩阵【】
  20. excel条形图-蝴蝶图的画法

热门文章

  1. 亿道丨三防平板丨加固平板丨三防工业平板丨航空航天应用
  2. 跑步耳机哪种好,适合在运动过程佩戴的耳机推荐
  3. [转]Web开发者和设计师必须要知道的 iOS 8 十个变化
  4. 风车动漫服务器维修要多长时间,风车动漫APP是什么样的软件?风车动漫APP出现打不开的具体处理方法...
  5. 小白学习Winform 遇到的问题总结
  6. 微信支付~微信手机网站支付(mweb)
  7. 阿里云服务器配置Tomcat
  8. ISP PIPLINE (二) LensShading Correct
  9. VB.NET中的回车换行
  10. Day_06 传智健康项目-移动端开发-体检预约