# KeyboardSwitch
**Repository Path**: donghuadong/KeyboardSwitch
## Basic Information
- **Project Name**: KeyboardSwitch
- **Description**: 解决键盘和面板切换闪屏问题
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-07-31
- **Last Updated**: 2021-08-27
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 键盘面板切换屏幕闪烁解决方案使用说明
## 1. 基本配置
### 1.1 引入依赖
```
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
```
```
dependencies {
...
implementation 'com.gitee.donghuadong:KeyboardSwitch:1.0.4'
}
```
### 1.2 activity设置为adjustResize
```
```
### 1.3 父布局使用KeyBoardLayout
```
<上方可滚动布局>
<自定义键盘布局>
<输入框布局/>
<面板容器布局>
<表情面板/>
<更多功能面板/>
面板容器布局>
自定义键盘布局>
```
### 1.3 键盘布局参数设置
```
// 1.绑定面板容器布局(所有面板的父容器)
keyBoardLayout.keyBoardDriver.panelView = panel
// 2.设置关联View控制器
keyBoardLayout.keyBoardDriver.kbViewController = object : KeyboardViewController {
override fun scrollViewToBottom() {
//上方滚动布局滚动到底部的实现方法(可以是scrollview或recycleview等)
scrollView.fullScroll(ScrollView.FOCUS_DOWN)
}
override fun hideAllChildView() {
//隐藏所有面板布局
//键盘显示后,会自动调用该方法
//防止收起键盘后,自定义面板自动显示
emojiView.visibility = View.GONE
moreFunctionView.visibility = View.GONE
}
}
```
## 2.只有一个面板的场景
```
switchEmoIV.setOnClickListener {
keyboardLayout.keyBoardDriver.switch(editText = inputET, showChildView = emojiView)
}
```
## 3.存在多个面板的场景
```
switchEmoIV.setOnClickListener {
1.当前显示其他面板
else if (panel.visibility == View.VISIBLE && moreFunctionView.visibility == View.VISIBLE) {
//隐藏其他面板,显示该面板
keyboardLayout.keyBoardDriver.switch(showChildView = emojiView, hideChildView = moreFunctionView)
}
//2.其他场景
else{
keyboardLayout.keyBoardDriver.switch(editText = inputET, showChildView = emojiView)
}
}
```
## 4 效果图
效果图 1

效果图 2

效果图 3

效果图 4
