Android中使用TagFlowLayout制作动态添加删除标签
发布时间 - 2026-01-11 02:26:30 点击率:次效果图
简单的效果图(使用开源库)[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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何破解联通资金短缺导致的基站建设难题?
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
Python结构化数据采集_字段抽取解析【教程】
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】
Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】
微信小程序 闭包写法详细介绍
想要更高端的建设网站,这些原则一定要坚持!
如何自定义建站之星网站的导航菜单样式?
香港服务器选型指南:免备案配置与高效建站方案解析
Laravel如何使用Eloquent进行子查询
Laravel怎么为数据库表字段添加索引以优化查询
Android中AutoCompleteTextView自动提示
php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】
Laravel怎么使用artisan命令缓存配置和视图
javascript中闭包概念与用法深入理解
如何在IIS7上新建站点并设置安全权限?
Win11怎样安装网易有道词典_Win11安装词典教程【步骤】
千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】
如何在Windows服务器上快速搭建网站?
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
如何在腾讯云服务器上快速搭建个人网站?
微信小程序 配置文件详细介绍
bing浏览器学术搜索入口_bing学术文献检索地址
公司门户网站制作流程,华为官网怎么做?
Laravel怎么在Blade中安全地输出原始HTML内容
Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】
Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
Laravel怎么使用Intervention Image库处理图片上传和缩放
Laravel如何实现API资源集合?(Resource Collection教程)
Laravel如何实现用户注册和登录?(Auth脚手架指南)
详解jQuery中基本的动画方法
ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法
如何在橙子建站上传落地页?操作指南详解
php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】
制作企业网站建设方案,怎样建设一个公司网站?
如何使用 jQuery 正确渲染 Instagram 风格的标签列表
Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】
浅述节点的创建及常见功能的实现
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程
米侠浏览器网页背景异常怎么办 米侠显示修复
Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】
Laravel PHP版本要求一览_Laravel各版本环境要求对照

