开源中国源码分析(二)

动弹详情表情键盘的分析:

TweetDetailActivity.java的initWidget()方法中开始阅读

mViewInput是KeyboradInputDelegation类中填充的布局的控件,所以实例化了KeyboardInputDelegation的对象后下面就通过该对象获取了mViewInput的引用,因为评论的提交是在TweetDetailActivity.java文件中完成的,mViewInput控件的实例化是在KeyboradInputDelegation.java中的,为了能在提交后更新该控件的hint和text,所以需要该引用


KeyboradInputDelegation.java的静态方法中填充了评论工具条的布局,并且将评论工具条加入到TweetDetailActivity的布局容器中了,且该工具条的根布局已经设置了滑动时显示与隐藏的那个属性了。

KeyboradInputDelegation#showEmoji()方法中实例化了帧布局控件和Emoji图片控件

接着实例化表情键盘所在的Fragment设置了点击监听器【用于监听表情图标的点击和删除表情操作】并填充上文中的帧布局,因为表情键盘Fragment填充了工具条下面的帧布局,所以需要FragmentManager,这个参数需要Acitivity页面传递过去。


评论输入的文本是在键盘输入代理类KeyboradInputDelegation#setAdapter()方法通过回调Actiivty中的方法实现的提交和删除操作

键盘, emotion按钮, 输入框, emotion面板之间的相互关系委派给KeyboardActionDelegation类管理的,因为Emojy表情键盘的表情和底部工具条的显示与隐藏是在Frament中控制的,该Fragment是KeyboradInputDelegation的一个临时变量,所以需要在KeyboardActionDelegation中提供一个接口供KeyboradInputDelegation调用处实现。该管理类显示与隐藏表情键盘和表情工具条具体是在KeyboradInputDelegation文件中表情Fragment中实现的,所以KeyboardActionDelegation需要定义一个接口供表情Fragment中实现所在的地方实现。


EmojiKeyboardFragment.java布局中含有可显示多种表情的ViewPager和底部工具条,直接控制着表情键盘的显示和系统软键盘的显示与隐藏


发现->开源软件分类点击条目可以左右滑动切换2个ListView布局







  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值