【Android#8】Editext和软键盘的爱恨情仇:自定义底部输入框被部分遮挡+IM聊天界面输入框表情面板的跳变问题+

本文探讨了Android开发中EditText与软键盘的交互问题,包括自定义标题栏在多编辑框界面如何保持可见,全屏模式下底部编辑框被遮挡的解决方法,以及编辑框控件跳变的处理。通过调整AndroidManifest.xml中activity的属性,使用ScrollView、adjustPan和adjustResize,以及在代码中动态控制布局,可以有效改善用户体验。
摘要由CSDN通过智能技术生成

参考:IM聊天界面输入框表情面板的跳变问题

.1.需求:“自定义标题栏不动,多编辑框界面能保持上移输入时可见”

问题表现:

在这里插入图片描述
manifest文件中activity注册声明没有该属性时或者设置该属性如下adjustPan

android:windowSoftInputMode="adjustPan" 

表现为整个布局被上移,很多时候布局文件里面自定义的标题也会被推出屏幕之外,面对常有的自定义标题栏十分难堪。

有没有什么办法固定住标题栏,而下面的不动呢?答案是有的。我们来试试adjustResize

android:windowSoftInputMode="adjustResize" 

在这里插入图片描述
尴尬了,这个值直接不做任何布局反应,完全遮挡住输入框。
再来试试套ScrollView大法:
在这里插入图片描述
在这里插入图片描述
经测试,外层套一个ScrollView很完美应对"自定义标题栏不动,多编辑框界面能保持上移输入时可见"的需求。而此时无论有没有设置adjustResize或者adjustPan不再有关系。但是简单解决方案只能应对特殊的情况,一般来讲这还不够自由,不够一般性治标不治本。

2.需求:“全屏下adjustResize失效,解决底部编辑框被软键盘遮挡”

问题表现:

简单的布局下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

<!--自定义Linenearlayout-->
    <com.example.schoolservice.view.ChatSendBottom
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值