cocos listview 删除的3种方案

本文探讨了在Cocos创建的ListView中删除元素的三种方法:1) 单独删除指定下标的item;2) 更为复杂的删除操作;以及3) 一种额外的删除策略。通过对这些方法的分析,开发者可以选择最适合自己项目的实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 每次只删那一个下标 removeItem


2. 

forceDoLayoutfunction UIGuildScience:delSkillItem(_idx)	--添加技能item
	print("传进来的 点击的item idx " .. _idx)
	local tbList = self.m_ListView_Science:getItems()
	--dump(tbList, "tbList")
	local isBeginDel = false
	local tempDelTable = {}		--记录下需要删除的项的对象
	for k, v in ipairs(tbList) do
		print("111*****************************************")
		print("k = " .. k)
		print("v.titleIdx " .. (v.titleIdx or "nil"))
		print("222*****************************************")

		if v.titleIdx and v.titleIdx > _idx then	--结束
			print("结束 idx " .. k)
			isBeginDel = false
			break
		end

		if isBeginDel == true then
			print("要删的k " .. k)
			table.insert(tempDelTable, tbList[k])	--把要删的对象存起来 然后遍历用removeChild删 用removeItem删会出错(索引会跳)
		end

		if v.titleIdx and v.titleIdx == _idx then		--开始
			print("开始 idx " .. k)
			isBeginDel = true
		end

	end

	for _i, v in ipairs(tempDelTable) do
		self.m_ListView_Science:removeChild(tempDelTable[_i])
	end

--	self.m_ListView_Science:refreshView()<span style="font-family: Arial, Helvetica, sans-serif;">--或者 forceDoLayout</span>

end

第3

function UIGuildScience:delSkillItem(_idx)	--添加技能item
	print("传进来的 点击的item idx " .. _idx)
	local tbList = self.m_ListView_Science:getItems()
	--dump(tbList, "tbList")
	local isBeginDel = false
	local tempDelTable = {}		--记录下需要删除的项的对象
	local tbReverse = {}
	for k, v in ipairs(tbList) do
		print("111*****************************************")
		print("k = " .. k)
		print("v.titleIdx " .. (v.titleIdx or "nil"))
		print("222*****************************************")

		if v.titleIdx and v.titleIdx > _idx then	--结束
			print("结束 idx " .. k)
			isBeginDel = false
			break
		end

		if isBeginDel == true then
			print("要删的k " .. k)
			table.insert(tbReverse, k)	--把要删的对象存起来 然后遍历用removeChild删 用removeItem删会出错(索引会跳)
		end

		if v.titleIdx and v.titleIdx == _idx then		--开始
			print("开始 idx " .. k)
			isBeginDel = true
		end

	end

	--dump(tbReverse,"之前")

	table.sort(tbReverse,function(a, b) return a > b end)

	--dump(tbReverse,"之后")

	for _i, v in ipairs(tbReverse) do
		self.m_ListView_Science:removeItem(tbReverse[_i]-1)
	end

--	for _i, v in ipairs(tempDelTable) do
--		self.m_ListView_Science:removeChild(tempDelTable[_i])
--	end

	self.m_ListView_Science:forceDoLayout()
end

倒序删

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值