阳光沙滩
让学习编程变得简单
富文本编辑器中,让布局保持在键盘上方,可以看看这个文章。
发表于 2019-12-14    阅读次数 187

我用别人开源富文本编辑器,发现键盘上方一行空间变得非常高,看了里面代码,看来看去不明白,后来看到这个文章解决了。修改mainfest中的代码。

先上图。就是上面一行控件和键盘吸附效果。

图片描述

<activity
        android:name=".RichEditorActivity"
        android:windowSoftInputMode="stateHidden|adjustPan">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>

加入的就是这一行

android:windowSoftInputMode="stateHidden|adjustPan

大神多数不会遇到这样问题的,不过困扰了我几个小时,发现搜对问题很重要。

参考内容我就放到下面了:

地址:https://blog.csdn.net/mjyy10181103/article/details/78261500

在实际项目中,肯定会有输入数据的情况,这样就会用到键盘。

但是键盘弹起必然会遮盖掉屏幕下半部分的布局。

比如说一个登陆界面,账号、密码的输入框在最上面,登陆、取消按钮在下方,当用户点击输入账号时,就有可能把最底下的按钮遮住,甚至会把密码框也遮住导致不能直接切换到密码输入框。这样用户使用起来是不是特别别扭呢?

解决方法:

在manifest文件中的activity标签中修改android:windowSoftInputMode属性

属性参数:

各值的含义: 【A】stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置 【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示 【C】stateHidden:用户选择activity时,软键盘总是被隐藏 【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的 【E】stateVisible:软键盘通常是可见的 【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态 【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示 【H】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间 【I 】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分

还有一种情况。你单纯想将原本靠在屏幕底部的按钮、文字、图片、布局之类的控件不被键盘遮住,想它们跟着键盘上下移动。

解决方法:

其实很简单。xml中给控件添加属性alignParentBottom = true;在显示键盘和隐藏键盘方法中添加方法view.requestLayout(); 这样view就会跟着键盘移动了。