软键盘问题

 

一、IM当中的聊天界面关系嵌套

AttachController类定义了下面的container

SessBottomContrller 定义了一些表情框等

 

FragChatViewController 界面都在这 body + bottom

 

FragChat fragment需要调用上面的view

 

真正的Activity,调用上面的fragment

 

 

输入文字,覆盖container的时候,我们必须让container消失才行。

 

二、关于软键盘 与 Editview

参考资料:http://blog.sina.com.cn/s/blog_671d2e4f0101f8fd.html#userconsent# Android_EditView与软键盘相关

想解决的问题:

  当我按back

变成这样

但是我想要的是这样 

 

不应该有中间 层

 

 

问题探索:

可不可以捕捉键盘的监听事件?

但是事件监听是有优先级的 看看事件分发机制

而是第一次按下back,键盘缩下去,第二层back view 缩下去。第三次back 刚刚的事件才执行?

我怎么找到按第一个back键的时候哪个方法在执行???

 

参考: http://blog.csdn.net/lmj623565791/article/details/38960443 事件分发

仿微信的项目: http://www.apkbus.com/forum.php?mod=viewthread&tid=242633&highlight=%E5%BE%AE%E4%BF%A1

 

三、软键盘相关问题

 

问题分析:

 

1、多点几次添加表情,系统出问题

 

2、系统死掉的频率太高

 

3、控制container的显示与隐藏,在ActChat中不可行

 

4、生命周期:当按第三次OnbackPause OnPause才执行

 

5、监听不到软键盘

 

结论:不是软键盘的问题,是逻辑问题。

 

 

四、其他介绍

 

ActionBarDrawerToggle工具类主要是用来将DrawerLayout和ActionBar 上面的功能结合起来。

 

 

 

五、EventBus 组件间交互的方法

参考文章: http://blog.csdn.net/bboyfeiyu/article/details/43450553  Android事件总线 ( AndroidEventBus ) 开源库发布

主要目的就是想要在另一个组件中,调用我们已经注册过的事件(多个函数)(另一个对象中)。

然后,在当前的对象中,我们发布事件(可以有标签),然后另一个对象中,会自动执行带有标签和默认的事件。

(注意:当重新打开一个工程的时候,模拟器找不到的时候,我们只需要关闭当前模拟器,然后重新打开一个模拟器就可以了。)

Demo:

效果:

当我们按下按钮从MainActivity中跳转到YourActivity当中时候,log出来的内容:

 

注意的地方:务必保证发布的事件的代码执行,不执行啥都看不到。

 

Mainactivity 当中:

YourActivity中:

 

 

六、集成环信JDK:

当我们假装某些资源的时候,直接调用可以 直接 @drawale/xxxx

此图片资源一般都放在

但是,假如我们某个控件有多种状态,需要多种资源(可能是图片、图形),这个时候第一种直接加载的方法失效,我们需要自定义某些资源文件。

文件大概是下面的样子:

原文地址:https://www.cnblogs.com/zhuxuekui/p/4564292.html