2023年7月15日发(作者:)
Android仿微信实现评论功能在最近做的项⽬中有碰到要写类似朋友圈的模块,因为要实现评论点赞功能,这⾥说下我是怎么实现评论功能的。
⾸先先放上效果图
这⾥贴上我的代码://给评论图标设置点击事件 mIv_header_lickListener(new kListener() { @Override public void onClick(View v) { showPopupcomment(); } });showPopupcomment()⽅法如下private PopupWindow popupWindow; private View popupView = null; private EditText inputComment; private String nInputContentText; private TextView btn_submit; private RelativeLayout rl_input_container; private InputMethodManager mInputManager; @SuppressLint("WrongConstant") private void showPopupcomment() { if (popupView == null){ //加载评论框的资源⽂件
popupView = (context).inflate(t_popupwindow, null); } inputComment = (EditText) ewById(_discuss); btn_submit = (Button) ewById(_confirm); rl_input_container = (RelativeLayout)ewById(_input_container); //利⽤Timer这个Api设置延迟显⽰软键盘,这⾥时间为200毫秒 Timer timer = new Timer(); le(new TimerTask() { public void run() { mInputManager = (InputMethodManager)getActivity().getSystemService(_METHOD_SERVICE); ftInput(inputComment, 0); } }, 200); if (popupWindow == null){ popupWindow = new PopupWindow(popupView, _PARENT, _CONTENT, false); } //popupWindow的常规设置,设置点击外部事件,背景⾊ chable(true); usable(true); sideTouchable(true); kgroundDrawable(new ColorDrawable(0x00000000)); chInterceptor(new hListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (ion() == _OUTSIDE) s(); return false; } }); // 设置弹出窗体需要软键盘,放在setSoftInputMode之前 tInputMode(_METHOD_NEEDED); // 再设置模式,和Activity的⼀样,覆盖,调整⼤⼩。 tInputMode(_INPUT_ADJUST_RESIZE); //设置popupwindow的显⽰位置,这⾥应该是显⽰在底部,即Bottom Location(popupView, , 0, 0); (); //设置监听 ismissListener(new issListener() { // 在dismiss中恢复透明度 @RequiresApi(api = N_E) public void onDismiss() { ftInputFromWindow(dowToken(), 0); //强制隐藏键盘 } }); //外部点击事件 rl_input_lickListener(new kListener() { @Override public void onClick(View v) { ftInputFromWindow(dowToken(), 0); //强制隐藏键盘 s(); } }); //评论框内的发送按钮设置点击事件 btn_lickListener(new kListener() { @Override public void onClick(View v) { nInputContentText = t().toString().trim(); if (nInputContentText == null || "".equals(nInputContentText)) { showToastMsgShort("请输⼊评论内容"); return; } ftInputFromWindow(dowToken(),0); s(); } }); }在刚开始显⽰的时候发现,EditText即评论框被顶到屏幕最上⽅,然⽽键盘显⽰在底部,达不到效果。很多⽂章都说tInputMode(_METHOD_NEEDED);tInputMode(_INPUT_ADJUST_RESIZE);这两句代码顺序不能变,然⽽这样写了之后还是实现不了,⾃⼰摸索了半天发现出现这样的问题与评论框的布局也有关系。所以在这⾥贴上我的评论框布局t_popupwindow
发布者:admin,转转请注明出处:http://www.yc00.com/web/1689430378a246987.html
评论列表(0条)