Andorid开发中仿微信聊天界面中遇到的问题
2016-06-15 15:05
507 查看
界面
1.在要弹出软键盘的界面中,一般是一个listView或者recyclerview作为一个显示消息的列表底部,底部是一个布局,布局中有一个语音文字切换的按钮(IamgeView),输入框(EditText)和一个发送按钮(Button)逻辑
1.在进入这个activity中时,默认是不打开小键盘的,也就是edittext不会获取光标,只有当edittext获取焦点时,才会弹出软键盘,在弹出软键盘的情况下,点击界面的其他地方,edittext失去焦点,软键盘一起隐藏,再次点击edittext时获取问题
1.进入聊天界面时,不自动弹出软键盘,一般edittext是可以获取焦点的,并且可以通过触摸获取焦点。这里有一个概念,什么是焦点?焦点是:focusable,focusableintouchmode为true的空间通过点击获取的焦点,或者通过设置通过代码requestFocus()获取到。button,imageview,textview这些控件,默认都是不可以获取焦点的,只有设置前两个属性之后才能够获取焦点2.软键盘弹出后,把activity给顶上去。这个问题要设置activity的属性。
android:windowSoftInputMode=”stateHidden|adjustResize”
3.软键盘的弹出和隐藏:
弹出:edittext获取焦点之后软键盘会自动的弹出
隐藏:点击listview的时候会隐藏软键盘,通过以下代码,
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(chatEt.getWindowToken(),0);可以监听触摸事件的方法。
4.listview中的设置:
1.软键盘弹出后会将listview中的item向上顶,而不是listview布局顶上去,设置该属性会将listview顶上去,android:transcriptMode=”normal”(因为在recyclerview中未找到该属性也没有找到其他实现该效果的属性,所以没有使用recyclerview
2.listview,设置显示最后一个item: lv.setSelection(adapter.getCount()-1);
到此结束 !!!
相关文章推荐
- android 基础之仿微信tab实现
- 获取用户微信上的所在地
- 微信带参数二维码php
- 微信分享自定义内容实现
- 微信JS SDK Demo
- 微信JS接口
- 微信开放平台中android 应用签名的获取
- 微信公众号自定义菜单中添加图标(转)
- 微信消息模板php
- 微信支付:商户订单号重复
- 梦行MONXIN多卖家商城系统 线后或换域名后打不开 解决方案(PC+手机+微信+收银)
- 微信开发:微信支付(PHP)
- 微信分享完整demo
- 网页打开后,微信分享的时候,微信没抓到图片怎么办?
- C++考试小程序编程思路和简单设计
- iOS微信第三方登录实现
- 微信公众平台开发(83) 生成带参数二维码
- 微信支付之退款
- 微信开发记录
- 微信公众号资料整理