tv_search_member.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { logger.d("GroupMemberSelectFragment#tv_search_member.setOnKeyListener"); String key = tv_search_member.getText().toString(); int mPortraitViewsSize = mPortraitViews.size(); logger.d("GroupMemberSelectFragment#tv_search_member.setOnKeyListener#A#key:%s,",key); //rwb:此处判断条件为ACTION_DOWN,不能为ACTION_UP,否则将会删除最后搜索字符同时删除头像。 if (TextUtils.isEmpty(key)&&keyCode == KeyEvent.KEYCODE_DEL && event.getAction() == KeyEvent.ACTION_DOWN) { logger.d("GroupMemberSelectFragment#tv_search_member.setOnKeyListener#B#key:%s,",key); if (mPortraitViewsSize > 0) { View view = mHitChildLayout.getChildAt(mPortraitViewsSize - 1); int index = mPortraitViews.indexOfValue(view); int position = mPortraitViews.keyAt(index);//rwb:获取该view在mPortraitViews中的key值,即对应listview中的position。 logger.d("GroupMemberSelectFragment#tv_search_member.setOnKeyListener#C#mPortraitViewsSize:%d position:%d", mPortraitViewsSize, position); View viewHolder = contactListView.getChildAt(position); adapter.unCheckBox(viewHolder, position); mHitChildLayout.removeViewAt(mPortraitViewsSize - 1); checkedNum--; setTopRightNum(checkedNum); mPortraitViews.remove(position); } return false; } else { logger.d("GroupMemberSelectFragment#tv_search_member.setOnKeyListener#D#getAction:%d key:%s",event.getAction(),key); return false;//rwb:不能return true,否则将删除文字功能将失效。 } } });
模仿微信选择群组成员的搜索效果(退格删除成员)
最新推荐文章于 2021-11-23 13:48:38 发布