luabinding 中用Scrollview实现pageview的翻页效果
来源:互联网 发布:玲珑醉梦网络剧百度云 编辑:程序博客网 时间:2024/05/17 21:57
在开发聊天系统的表情界面时,首先想到的是pageview这样可以直接打到滑动时可以将整个表情界面滑动,但是目前pageview的监听事件的状态只有滚动一种状态,这样的如果要实现在页面滚动的情状下,即使点击到上面的表情也不能将表情转化为字符串显示在输入框内,在策划提出这个需求的时候,我一下不知道该怎么办啦。只有一个状态即使是我让它在翻页时不能转换,该怎么置回来呢?
最后狠下心不用pageview啦,用scrollview,但是这样问题又来了,怎么让它达到和pageview一样的效果的,怎样让它滑动的时候不能被截掉?下 面的方法可以实现效果
local function fnScrollViewScrolling(sender,eventType )
if eventType == 10 then
local bposX = sender:getPercentage()*100
_bPosX = bposX
end
print("-------bposX=",_bPosX)
if ccui.ScrollviewEventType.scrolling == eventType or eventType == 9 then
_IsRolling = true
local edposX = sender:getPercentage()*100
print("-------edposX=",edposX)
local dispox = edposX - _bPosX
print("--------dispox=",dispox)
if dispox < 0 then
_currPercent = _currPercent - _addPercent
_currCount = _currCount +1
if _currPercent >= 100 then
_currPercent = 100
_currCount = _num
end
else
_currPercent = _currPercent + _addPercent
_currCount = _currCount-1
if _currPercent <= 0 then
_currPercent = 0
_currCount = 1
end
end
sender:scrollToPercentHorizontal(_currPercent,0.1,false)
print("--------_currPercent=,_currCount=",_currPercent,_currCount)
elseif eventType == 12 then
print("--------eventType------------12--")
_IsRolling = false
end
end
关键的是增量addPercent,而这个如下获得 local totalNum = DB_Game_constant.getArrDataByField("name","expression_num")
--画表情页面
function creatEmojiPage( ... )
local totalNum = DB_Game_constant.getArrDataByField("name","expression_num")
local num = math.ceil((totalNum[1].price-1)/15)
_num = num
local pageView = _emojiNode:getChildByName("emojipage")
require "src/libs/LuaListView"
if not pageView then
pageView = LuaListView:create()
pageView:setTouchEnabled(true)
pageView:setSize(cc.size(356, 244))
pageView:setAnchorPoint(0.5,0.5)
pageView:setPosition(_emojiNode:getContentSize().width/2,_emojiNode:getContentSize().height/2)
pageView:setName("emojipage")
pageView:addEventListenerListView(fnScrollViewScrolling)
pageView:setDirection(ccui.ScrollViewDir.horizontal)
_emojiNode:addChild(pageView)
else
pageView:removeAllItems()
pageView:setDirection(ccui.ScrollViewDir.horizontal)
end
for i = 0 , num-1 do
local layout = ccui.Layout:create()
layout:setSize(cc.size(356, 244))
local j--行数
local xpoint --每一行对应的列数除去5所得的余数
for k=1,15 do
if k >=1 and k<= 5 then
j = 0
elseif k>=6 and k<=10 then
j=1
elseif k>=11 and k<= 15 then
j=2
end
xpoint = k%5
local node = createEmojItem(15*i+k)
node:setAnchorPoint(0,1)
layout:addChild(node)
if xpoint~= 0 then
node:setPosition((xpoint-1)*62+20-24+20,(235-10)-j*(62+10)-33+21)
else
node:setPosition(4*62+20-24+20,(235-10)-j*(62+10)-33+21)
end
end
pageView:pushBackCustomItem(layout)
end
local width = pageView:getInnerContainer():getContentSize().width-356
_addPercent = (356/width)*(-100)
print("-------_addPercent=",_addPercent)
_currCount = 1
--画页面小按钮
paintPoint(num,_emojiNode)
--默认设第一个
_fnUpPagePoint(_currCount)
end
这样就可以实现用scrollview达到pageview的效果啦。
- luabinding 中用Scrollview实现pageview的翻页效果
- unity 实现pageView翻页效果
- ScrollView 实现缩放,透明度,PageView效果
- 网页翻页效果的实现
- 翻页效果的动画实现
- 相册翻页效果ScrollView+pageControl
- Scrollview.pageview和listview的使用
- 关于PageView,ListView,ScrollView的一些看法
- cocos2d-x v3.10之ccui.PageView 翻页实现
- Android翻页效果原理实现之翻页的尝试
- Android翻页效果原理实现之翻页的尝试
- Android翻页效果原理实现之翻页的尝试
- flipboard的翻页效果的实现
- flipboard的翻页效果的实现
- ScrollView反弹效果的实现
- ScrollView反弹效果的实现
- ScrollView反弹效果的实现
- Cocos2d-lua PageView的实现
- mac osx 和windows 时间不同步解决方法
- 什么是debug模式,,release模式?
- Qt For Android 之启动页
- 银行风控案例-python学习笔记
- linux下安装jdk和tomcat
- luabinding 中用Scrollview实现pageview的翻页效果
- 感悟人生
- POJ 1486 Sorting Slides(二分图最大匹配:关键边)
- 通过Struts源码生成chm格式帮助文档
- asp.net mvc 实现判断用户是否登录的两种方式
- boost简介
- Win10下安装Cisco VPN Client终极解决方法
- redis 启动,关闭,查看状态
- c#连接access 2007连接字符串