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

b556402b7bf3683b1af5e29b019d26e9.gif

步骤

导包

compile 'com.zhy:flowlayout-lib:1.0.3'

android:id="@+id/id_flowlayout"

zhy:max_select="-1"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:padding="20dp">

初始化数据

private String[] mVals = new String[]

{"Hello","Android","Weclome Hi ","Button","TextView","Hello","Weclome","Button ImageView","Helloworld" };

arrTab = new ArrayList();

//添加一条数据用于添加标签的替换

arrTab.add("tab");

设置TagFlowLayout的adapter

//设置adapter

adapter = new TagAdapter(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,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

android:layout_width="88dp"

android:paddingTop="5dp"

android:layout_height="40dp">

android:layout_gravity="center"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@drawable/bacs_btn_addbq"

/>

tv

xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="88dp"

android:layout_height="wrap_content">

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">

android:id="@+id/iv_delete"

android:layout_alignParentRight="true"

android:layout_width="15dp"

android:layout_height="15dp"

android:src="@drawable/sm_ico_sounddel"

/>

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

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值