一、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
此图片资源一般都放在
但是,假如我们某个控件有多种状态,需要多种资源(可能是图片、图形),这个时候第一种直接加载的方法失效,我们需要自定义某些资源文件。
文件大概是下面的样子: