AutoFlowLayout icon indicating copy to clipboard operation
AutoFlowLayout copied to clipboard

有没有设置默认选中数据,默认选中一条或者多条

Open haoyuexiyu opened this issue 7 years ago • 5 comments

还有,单选后再次点击怎么还可以取消所选中的那一项

haoyuexiyu avatar Sep 18 '17 02:09 haoyuexiyu

修改setAdapter方法, addView(view);之前调用view.setSelected(true);就可以

allwith avatar Oct 12 '17 10:10 allwith

设置setselected不行啊

Nextweekends avatar May 06 '18 10:05 Nextweekends

private void initAutoFlowlayout(ArrayList<String> mData, List<SkillModel> skillModels) { cvb.autoChooseSkill.setAdapter(new FlowAdapter(mData) { @Override public View getView(int position) { View item = mLayoutInflater.inflate(R.layout.item_skill_text, null); TextView tvAttrTag = (TextView) item.findViewById(R.id.tv_attr_tag); tvAttrTag.setText(mData.get(position)); / if(position == 0){ tvAttrTag.setSelected(true); } return item; } });

无法实现,选中之后 选其他会多选,点击默认的会 不选中

Nextweekends avatar May 06 '18 10:05 Nextweekends

第一步,加多一个字段isSelcect控制是否选中,如:

kedongjun avatar Apr 12 '23 03:04 kedongjun

第一步,adapter的实体类加多一个字段isSelcect控制是否选中,如: Screening screening = list.get(i); @SuppressLint("InflateParams") View item = LayoutInflater.from(getContext()).inflate(R.layout.grade_flow_item, null); TextView textView = item.findViewById(R.id.textView); textView.setText(screening.name); textView.setSelected(screening.isSelect); return item; 第二步,重新setOnItemClickListener: Screening screening = list.get(i); if (screening.isSelect){ return; }

        for (int j = 0; j < list.size(); j++) {
            Screening s = list.get(j);
            s.isSelect = false;
            adapter.getView(j).findViewById(R.id.textView).setSelected(s.isSelect);
        }

        //

        screening.isSelect = true;
        adapter.getView(i).findViewById(R.id.textView).setSelected(screening.isSelect);

可以实现默认选中。

kedongjun avatar Apr 12 '23 03:04 kedongjun