全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android中使用TagFlowLayout制作动态添加删除标签

效果图

简单的效果图(使用开源库)[FlowLayout](“ https://github.com/hongyangAndroid/FlowLayout “)

步骤

导包

compile 'com.zhy:flowlayout-lib:1.0.3'
<com.zhy.view.flowlayout.TagFlowLayout
  android:id="@+id/id_flowlayout"
  zhy:max_select="-1"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:padding="20dp">
</com.zhy.view.flowlayout.TagFlowLayout>

初始化数据

private String[] mVals = new String[]
    {"Hello", "Android", "Weclome Hi ", "Button", "TextView", "Hello",
        "Android", "Weclome", "Button ImageView", "TextView", "Helloworld" };
 arrTab = new ArrayList();
  //添加一条数据用于添加标签的替换
  arrTab.add("tab");

设置TagFlowLayout的adapter

//设置adapter
  adapter = new TagAdapter<String>(arrTab){
    @Override
    public View getView(FlowLayout parent, final int position, String s) {
      System.out.println(position + "---" + (arrTab.size() - 1));
      if (position == arrTab.size() - 1){
        //设置最后一个添加标签的布局
        LinearLayout iv = (LinearLayout) LayoutInflater.from(SecondActivity.this).inflate( R.layout.iv,
            mFlowLayout,false);
        //如果点击就添加元素并刷新adapter
        iv.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
            int i = arrTab.size() - 1;
            //将新加入的数据加到集合的最后一个位置,而原来的添加图标会到 +1 的位置 
            arrTab.add(i , mVals[position]);
            adapter.notifyDataChanged();
          }
        });
        return iv ;
      }else{
      //正常标签的布局
        RelativeLayout tv = (RelativeLayout) LayoutInflater.from(SecondActivity.this).inflate( R.layout.tv,
            mFlowLayout,false);
        TextView viewById = (TextView) tv.findViewById(R.id.tv_name);
        viewById.setText(s);
        ImageView imageView = (ImageView) tv.findViewById(R.id.iv_delete);
        imageView.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
            arrTab.remove(position);
            System.out.println("我点击的是" + position);
            adapter.notifyDataChanged();
          }
        });
        return tv;
      }
    }
  };
  mFlowLayout.setAdapter(adapter);

各种布局文件

iv
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="88dp"
android:paddingTop="5dp"
android:layout_height="40dp">
<ImageView
  android:layout_gravity="center"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:background="@drawable/bacs_btn_addbq"
  />
  </LinearLayout>
tv
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="88dp"
android:layout_height="wrap_content">
<!--android:background="@drawable/tag_bg"-->
<TextView
  android:id="@+id/tv_name"
  android:layout_marginTop="7dp"
   android:layout_width="80dp"
  android:gravity="center"
   android:layout_height="32dp"
  android:background="@drawable/bg_tv"
   android:text="我是唯爱"
  android:textSize="13sp"
   android:textColor="#FFF">
</TextView>
<ImageView
  android:id="@+id/iv_delete"
  android:layout_alignParentRight="true"
  android:layout_width="15dp"
  android:layout_height="15dp"
  android:src="@drawable/sm_ico_sounddel"
  />
</RelativeLayout>

以上所述是小编给大家介绍的Android中使用TagFlowLayout制作动态添加删除标签,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# tagflowlayout  # 动态添加删除标签  # android  # Kotlin + Flow 实现Android 应用初始化任务启动库  # 如何造个android Flow流式响应的轮子  # Android控件FlowLikeView实现点赞动画  # Android流式布局FlowLayout详解  # Android Kotlin Flow 冷热流详解  # 小编  # 的是  # 我是  # 在此  # 给大家  # 所述  # 给我留言  # 开源  # 感谢大家  # 疑问请  # 有任何  # lt  # view 


相关文章: 建站主机选择指南:服务器配置与SEO优化实战技巧  宝塔新建站点报错如何解决?  临沂网站制作公司有哪些,临沂第四中学官网?  如何设计高效校园网站?  如何用花生壳三步快速搭建专属网站?  免费ppt制作网站,有没有值得推荐的免费PPT网站?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  香港服务器WordPress建站指南:SEO优化与高效部署策略  制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?  广平建站公司哪家专业可靠?如何选择?  如何在万网自助建站平台快速创建网站?  h5网站制作工具有哪些,h5页面制作工具有哪些?  如何在阿里云虚拟服务器快速搭建网站?  学校建站服务器如何选型才能满足性能需求?  建站之星如何取消后台验证码生成?  高端云建站费用究竟需要多少预算?  智能起名网站制作软件有哪些,制作logo的软件?  已有域名如何免费搭建网站?  商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?  济南网站制作的价格,历城一职专官方网站?  如何选择CMS系统实现快速建站与SEO优化?  如何在局域网内绑定自建网站域名?  如何正确选择百度移动适配建站域名?  公司门户网站制作流程,华为官网怎么做?  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  Swift开发中switch语句值绑定模式  制作网站外包平台,自动化接单网站有哪些?  建站之星图片链接生成指南:自助建站与智能设计教程  如何用PHP快速搭建CMS系统?  Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  如何注册花生壳免费域名并搭建个人网站?  如何基于云服务器快速搭建网站及云盘系统?  公众号网站制作网页,微信公众号怎么制作?  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  建站之星会员如何解锁更多建站功能?  沈阳制作网站公司排名,沈阳装饰协会官方网站?  如何在云虚拟主机上快速搭建个人网站?  测试制作网站有哪些,测试性取向的权威测试或者网站?  网站好制作吗知乎,网站开发好学吗?有什么技巧?  如何在搬瓦工VPS快速搭建网站?  免费视频制作网站,更新又快又好的免费电影网站?  *服务器网站为何频现安全漏洞?  如何用AWS免费套餐快速搭建高效网站?  网站制作报价单模板图片,小松挖机官方网站报价?  C++如何将C风格字符串(char*)转换为std::string?(代码示例)  大型企业网站制作流程,做网站需要注册公司吗?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  如何用已有域名快速搭建网站?  如何在IIS中新建站点并配置端口与IP地址? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。