简单实现回复功能
来源:互联网 发布:苏州团扇李晶淘宝店 编辑:程序博客网 时间:2024/05/17 03:56
最近一个月都在超强度的加班中,博客都没时间维护了,搬了一个月砖也没有什么长进,不过有个评论回复的需求还是可以动脑子的。就跟qq空间的回复框弹出的效果差不多。
简单分析
为了做出这个效果,我把qq空间的回复效果仔细分析了一遍。首先他的输入框是跟随系统键盘一起弹出和收回的,如果不做回复操作,直接隐藏系统键盘的话输入框会停留在屏幕底部,触摸屏幕的任何位置输入框都会消失,不难看出他是在点击回复的时候,弹出一个Dialog,Dialog中添加了一个自定义布局;如果做回复操作后就键盘会自动收回,输入框也会跟着键盘的动画消失;就这么简单的实现了随键盘弹出和收回的动画。
核心代码
protected Dialog onCreateDialog() { final Dialog mDialog = new Dialog(context); //加载自定义布局 View mView = View.inflate(context,R.layout.dialog_comment, null); final EditText edt_reply = (EditText) mView.findViewById(R.id.edt_comments); Button btn_reply = (Button) mView.findViewById(R.id.btn_send); edt_reply.setFocusable(true); mDialog .requestWindowFeature(Window.FEATURE_NO_TITLE); mDialog .getWindow().setGravity(Gravity.BOTTOM); mDialog .setContentView(mView); ColorDrawable cd = new ColorDrawable(0x000000); mDialog .getWindow().setBackgroundDrawable(cd); //弹出系统键盘 TDevice.showSoftKeyboard(mDialog); mDialog .show(); btn_reply.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //回复操作 }); mDialog.setOnDismissListener(new DialogInterface.OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { TDevice.hideSoftKeyboard(edt_reply); } }); return mDialog ; }
以上代码中:
- requestWindowFeature(Window.FEATURE_NO_TITLE) 去除Dialog的标题
- setGravity(Gravity.BOTTOM) 设置初始位置在屏幕底部,当键盘弹出时刚好把输入框顶上去。
- TDevice.showSoftKeyboard(mDialog); TDevice一个弹键盘的工具类,这行代码必须放在mDialog .show();之前,具体代码如下。
public static void showSoftKeyboard(Dialog dialog) { dialog.getWindow().setSoftInputMode(4); }
隐藏软键盘
public static void hideSoftKeyboard(View view) { if (view == null) return; View focusView = null; if (view instanceof EditText) focusView = view; Context context = view.getContext(); if (context != null && context instanceof Activity) { Activity activity = ((Activity) context); focusView = activity.getCurrentFocus(); } if (focusView != null) { if (focusView.isFocused()) { focusView.clearFocus(); } InputMethodManager manager = (InputMethodManager) focusView.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); manager.hideSoftInputFromWindow(focusView.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); manager.hideSoftInputFromInputMethod(focusView.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); } }
基本上思路就这样,效果图自己想象吧
0 0
- 简单实现回复功能
- 实现评论,回复功能
- 实现朋友圈回复功能
- VC实现自动论坛回复功能
- 微信关键字自动回复功能实现
- tp 实现无限回复评论功能
- 微信自动回复功能实现
- TP5.0实现无限极回复功能
- 简单BBS的实现发帖与回复
- springMVC调微信接口实现关注时消息回复和自动回复功能
- 用JavaMail实现邮件自动回复功能代码
- php 无线级别分类 实现评论回复功能
- 后台“待回复询盘”提醒功能实现
- 短信回复上行功能开发经验及具体开发实现
- Android通过AccessibilityService实现微信自动回复功能
- Android通过AccessibilityService实现微信自动回复功能
- Vue.js实现文章评论和回复评论功能
- 博客项目实现文章评论功能(重点是评论回复)
- oracle ORA-00936: missing expression 报错的几种情况和解决方法
- Docker四种网络模式
- sqlserver中,insert into XXX values(N'xxx'),这里N的意思!
- httpclient详解(一)
- 2016.10.20 [ TEST 30 ] 总结
- 简单实现回复功能
- 谈KVC、KVO(重点观察者模式)机制编程
- 泉水
- Git命令行
- Spring modules介绍
- Linux dirname、basename 指令
- 计算机网络练习题
- ArcEngine开发常见报错原因分析及解决方法
- NOIP 2009 最优贸易