adrogy 2015-09-18 06:01 采纳率: 0%
浏览 1539

listview 中 tagview 卡顿求助

我现在想实现如截图的界面,但是现在实现的方法是每次getview的时候去添加tagview,导致上下滑动或者切换的时候都会很卡顿,截图是 什么值得买 中的界面,完全不会卡顿,顺带附上我的代码,想请教一下有什么思路可以解决,或者我哪里做错了,谢谢各位了

 listView.setAdapter(secondAdapter = new CommonAdapter<SecondProductBean>(ClassifyChooseAct.this, secondProductBeans, R.layout.list_classify_item) {
            @Override
            public void convert(ViewHolder helper, SecondProductBean item) {

                if (item.getPosition() == 0){
                    helper.setText(R.id.classify_tv, "全部");
                }else {
                    helper.setText(R.id.classify_tv, item.getTitle());
                }


                tagView = helper.getView(R.id.tagview);
                tagView.setVisibility(View.GONE);

                if (indexMap.containsKey(item.getPosition())) {
                    tagView.removeAllTags();

                    tagView.setVisibility(View.VISIBLE);

                    if (indexMap.get(item.getPosition()) < thirdProductBeans.size()) {
                        beans = thirdProductBeans.get(indexMap.get(item.getPosition()));
                    }

                    if (beans != null) {
                        for (int i = 0; i < beans.size(); i++) {
                            Tag tag = new Tag(Integer.parseInt(beans.get(i).getId()), beans.get(i).getTitle(), ProductBeans.get(click_position).getTag2(), item.getTag3());
                            tag.tagTextColor = Color.parseColor("#888888");
                            tag.layoutColor = Color.parseColor("#FFFFFF");
                            tag.layoutColorPress = Color.parseColor("#DDDDDD");
                            tag.radius = 20f;
                            tag.tagTextSize = 14f;
                            tag.layoutBorderSize = 1f;
                            tag.layoutBorderColor = Color.parseColor("#DDDDDD");
                            tagView.addTag(tag);
                        }
                    }

                    item.isFirst = false;
                }


                tagView.setOnTagClickListener(new OnTagClickListener() {
                    @Override
                    public void onTagClick(Tag tag, int position) {
                        ThirdProductBean bean = new ThirdProductBean();
                        bean.setTitle(tag.text);
                        bean.setTag2(tag.tag2);
                        bean.setTag3(tag.tag3);
                        bean.setTag4(tag.id);
                        Intent intent = new Intent(ClassifyChooseAct.this, SaleSearchResultAct.class);
                        intent.putExtra(SaleSearchResultAct.IntentKey_third_product, bean);
                        startActivity(intent);
                        overridePendingTransition(R.anim.push_right_in,
                                R.anim.push_left_out);
                    }
                });

            }

        });

图片说明

  • 写回答

1条回答 默认 最新

  • gundumw100 2015-09-18 06:25
    关注

    你先tagView.removeAllTags();
    然后再一个一个tagView.addTag(tag);
    不卡才怪

    评论

报告相同问题?

悬赏问题

  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站