# PanelSwitchHelper **Repository Path**: hihopeorg/PanelSwitchHelper ## Basic Information - **Project Name**: PanelSwitchHelper - **Description**: No description available - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-02-27 - **Last Updated**: 2021-10-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PanelSwitchHelper **本项目是基于开源项目PanelSwitchHelper进行ohos的移植和开发的,可以通过项目标签以及github地址(https://github.com/YummyLau/PanelSwitchHelper)追踪到原项目版本** #### 项目介绍 - 项目名称:输入法与面板流畅切换 - 所属系列:ohos的第三方组件适配移植 - 功能:解决输入法与聊天面板的顺畅切换 - 项目移植状态:完成 - 调用差异:无 - 项目作者和维护人:hihope - 联系方式:hihope@hoperun.com - 原项目Doc地址:https://github.com/YummyLau/PanelSwitchHelper - 编程语言:Java - 外部库依赖:无 #### 演示效果 #### 安装教程 方法1. 1. 下载动画库jar包PanelSwitchHelper.har。 2. 启动 DevEco Studio,将下载的har包,导入工程目录“entry->libs”下。 3. 在moudle级别下的build.gradle文件中添加依赖,在dependences标签中增加对libs目录下jar包的引用。 ``` dependencies { implementation fileTree(dir: 'libs', include: ['*.jar', '*.har']) …… } ``` 4. 在导入的har包上点击右键,选择“Add as Library”对包进行引用,选择需要引用的模块,并点击“OK”即引用成功。 方法2. 1. 在工程的build.gradle的allprojects中,添加HAR所在的Maven仓地址 ``` repositories { maven { url 'http://106.15.92.248:8081/repository/Releases/' } } ``` 2. 在应用模块的build.gradle的dependencies闭包中,添加如下代码: ``` dependencies { Implementation 'com.effective.ohos:panelSwitchHelper:1.0.1' } ``` #### 使用说明 ```xml ``` 2.在Ability中获取到PanelSwitchLayout,进行初始化控件工作。 1、在onStart()方法中,要添加切换面板的数据源,数据类型为 List 例如: ```java PanelLayoutId.add(LayoutScatter.getInstance(getContext()).parse(ResourceTable.Layout_panel_add_layout, null, false)); ``` ​ 2、在onStart()获取到xml中对应的PanelSwitchLayout 控件,获取该属性后,传入第一步的数据集合,在调用方法进行初始化 ``` mPanelSwitchLayout = (PanelSwitchLayout) findComponentById(ResourceTable.Id_panel_switch_layout); mPanelSwitchLayout.setPanelLayoutId(PanelLayoutId); mPanelSwitchLayout.onFinishInflate(); ``` ​ 3.在onActive()中对面板状态进行监听,进行事件处理 ``` PanelSwitchHelper mHelper = new PanelSwitchHelper.Builder(this,mPanelSwitchLayout) .addKeyboardStateListener((visible,height)->{ //可选实现,监听输入法变化 }) .addEditTextFocusChangeListener((view,hasFocus)->{ //可选实现,监听输入框焦点变化 }) .addViewClickListener(component->{ //可选实现,监听触发器的点击 }) //暂时先留着 .addPanelChangeListener(new OnPanelChangeListenerBuilder.OnPanelChangeListener() { @Override public void onKeyboard() { //可选实现,输入法显示回调 } @Override public void onNone() { //可选实现,默认状态回调 } @Override public void onPanel(IPanelView panel) { //可选实现,面板显示回调 } @Override public void onPanelSizeChange(IPanelView panel, boolean portrait, int oldWidth, int oldHeight, int width, int height) { //可选实现,输入法动态调整时引起的面板高度变化动态回调 } }) .addContentScrollMeasurer(new ContentScrollMeasurerBuilder.ContentScrollMeasurer() { //可选,滑动模式下,可以针对内容面板内的view,定制滑动距离,默认滑动距离为 defaultDistance }) .build(); ``` #### 版本迭代 - v1.0.1 #### 版权和许可信息 - Apache Licence