scrollview 嵌套 折叠效果

-------------------------------
--@ CreateDate: 2015.08.05
--@ Author: 王成成
--@ FileName: BaoShiTabXiangQianLayer.lua
--@ Brief: 宝石镶嵌
-------------------------------
local UIUtil = require("app.utils.UIUtil")
local curBaoShiTypeIndex = nil
local BaoShiTabXiangQianLayer = class("BaoShiTabXiangQianLayer", function()
return display.newLayer("BaoShiTabXiangQianLayer")
end)
function BaoShiTabXiangQianLayer:ctor()
local object, UITable = UIUtil:createLayerFromCSB("baoshi_xiangqian_layer", callBackProvider,true)
object:addTo(self)
self.scrollView = UITable["ScrollView"]
self.scrollViewBaoShiType = UITable["ScrollViewBaoShiType"]
self:loadData()
self:loadBaoshiTypeData()
end
-------------------------------------
------ 左边的 scrollview start -----
------ 左边的 scrollview start -----
-- 获取子节点的起始坐标
function BaoShiTabXiangQianLayer:getStartPoisition(count)
local x,y = 135,490
if count < 6 then
return x, y
end
y = y + ((count - 5) * 101)
return x, y
end
function BaoShiTabXiangQianLayer:getContentSize(count)
local size = self.scrollView:getContentSize()
if count < 6 then
return size
end
local rowcount = (count - 5)
size.height = size.height + (rowcount * 101)
return size
end
function BaoShiTabXiangQianLayer:loadData()
self.scrollView:removeAllChildren()
local count = 7
local x, y = self:getStartPoisition(count)
local size = self:getContentSize(count)
self.scrollView:setInnerContainerSize(size)
for i = 1, count do
local data = nil
local item, list = self:createItem(data)
item:setPosition({x = x, y = y})
y = y - 101
self.scrollView:addChild(item)
end
end
function BaoShiTabXiangQianLayer:createItem(data)
local callBackProvider = function(path, node, funcName)
if funcName == "itemClick" then
local function itemClick()
print("itemClick")
end
return itemClick
end
end
local object, UITable = UIUtil:createLayerFromCSB("baoshi_xiangqian_item", callBackProvider)
UITable["Image_root"]:setSwallowTouches(false)
return object, UITable
end
------ 左边的 scrollview end -----
------ 左边的 scrollview end -----
-------------------------------------
-------------------------------------
------ 中间的 scrollview start -----
------ 中间的 scrollview start -----
-- 获取子节点的起始坐标
function BaoShiTabXiangQianLayer:getMiddleStartPoisition(count)
local x,y = 135,420
if count < 8 then
return x, y
end
y = y + ((count - 7) * 64)
return x, y
end
function BaoShiTabXiangQianLayer:getMideleContentSize(count)
local size = self.scrollViewBaoShiType:getContentSize()
if count < 8 then
return size
end
local rowcount = (count - 7)
size.height = size.height + (rowcount * 64)
return size
end
function BaoShiTabXiangQianLayer:loadBaoshiTypeData(index)
self.scrollViewBaoShiType:removeAllChildren()
local count = 10
local x, y = self:getMiddleStartPoisition(count)
local size = self:getMideleContentSize(count)
self.scrollViewBaoShiType:setInnerContainerSize(size)
local countSub = 3
if index ~= nil then
y = y + 100 * countSub
end
for i = 1, count do
local data = {}
data.tag = i
local item, list = self:createBaoShiTypeItem(data)
item:setPosition({x = x, y = y})
self.scrollViewBaoShiType:addChild(item)
y = y - 64
--subitem
if i == index then
list["btnBaoShiType"]:loadTextureNormal("ui/baoshi/btn_qiexuan02.png")
for i = 1 , countSub do
item, list = self:createBaoShiTypeItemItem(data)
if i == 1 then
y = y - 20
end
item:setPosition({x = 133, y = y})
self.scrollViewBaoShiType:addChild(item)
y = y - 100
if i == countSub then
y = y + 20
end
end
self.scrollViewBaoShiType:setInnerContainerSize(cc.size(size.width, size.height + countSub * 100))
end
end
end
function BaoShiTabXiangQianLayer:createBaoShiTypeItem(data)
local callBackProvider = function(path, node, funcName)
if funcName == "typeClick" then
local function typeClick()
print("typeClick")
print("-----curBaoShiTypeIndex = "..table.tostring(curBaoShiTypeIndex))
print("----- data.tag = "..table.tostring(data.tag))
if curBaoShiTypeIndex == data.tag then
self:loadBaoshiTypeData()
curBaoShiTypeIndex = nil
else
self:loadBaoshiTypeData(data.tag)
curBaoShiTypeIndex = data.tag
end
end
return typeClick
end
end
local object, UITable = UIUtil:createLayerFromCSB("baoshi_type_item", callBackProvider)
UITable["btnBaoShiType"]:setSwallowTouches(false)
return object, UITable
end
end
return typeClick
end
end
local object, UITable = UIUtil:createLayerFromCSB("baoshi_type_item", callBackProvider)
UITable["btnBaoShiType"]:setSwallowTouches(false)
return object, UITable
end
function BaoShiTabXiangQianLayer:createBaoShiTypeItemItem(data)
local callBackProvider = function(path, node, funcName)
if funcName == "itemClick" then
local function itemClick()
print("itemClick")
end
return itemClick
end
end
local object, UITable = UIUtil:createLayerFromCSB("baoshi_item", callBackProvider)
UITable["Image_root"]:setSwallowTouches(false)
return object, UITable
end
------ 中间的 scrollview end -----
------ 中间的 scrollview end -----
-------------------------------------
function BaoShiTabXiangQianLayer:onExit()
print("onExit")
curBaoShiTypeIndex = nil
end
return BaoShiTabXiangQianLayer
scrollview 嵌套 折叠效果的更多相关文章
- 阻尼回弹效果的ScrollView嵌套GridView
以前写过一篇带阻尼回弹效果的ScrollView,但是有些小问题,于是又重新整理了一下,这篇文章一是一个带阻尼的Scrollview,再个就是Scrollview嵌套GridView实现,而GridV ...
- Android仿掌上英雄联盟首页,实现折叠效果
概述 仿掌上英雄联盟首页的demo 详细 代码下载:http://www.demodashi.com/demo/10695.html 首页大概分为几个部分 状态栏 标题栏 轮播图 切换的Tab 资讯列 ...
- 关于ScrollView嵌套ListView问题
Android开发之ScrollView中嵌套ListView的解决方案 原文:http://blog.csdn.net/minimicall/article/details/40983331 ...
- (转)ViewPager,ScrollView 嵌套ViewPager滑动冲突解决
ViewPager,ScrollView 嵌套ViewPager滑动冲突解决 本篇主要讲解一下几个问题 粗略地介绍一下View的事件分发机制 解决事件滑动冲突的思路及方法 ScrollView 里面嵌 ...
- 四种方案解决ScrollView嵌套ListView问题(转)
以下文章转自@安卓泡面 在工作中,曾多次碰到ScrollView嵌套ListView的问题,网上的解决方法有很多种,但是杂而不全.我试过很多种方法,它们各有利弊. 在这里我将会从使用ScrollVie ...
- Scrollview 嵌套 RecyclerView 及在Android 5.1版本滑动时 惯性消失问题
标签:scrollview android 滑动 嵌套 scrollview 嵌套recyclerview 时,recyclerview不显示,这就需要我们自己计算recyclerview ...
- 冲突--ScrollView嵌套ListView冲突问题的最优解决方案
项目做多了之后,会发现其实 ScrollView嵌套ListVew或者GridView等很常用,但是你也会发现各种奇怪问题产生.根据个人经验现在列出常见问题以及代码最少最简单的解决方法. 问题一 : ...
- android 解决ScrollView嵌套ListView的问题,不能全屏,全屏不能显示下面控件
在开发中遇到ScrollView嵌套ListView的问题,最开始发出不能全屏,效果是这样的: 但我想要的效果是这样的: 下面看一下布局文件: <?xml version="1.0&q ...
- ScrollView嵌套ListView的滑动冲突问题,是看大神的方法的,作为学习以后用的到
在工作中,曾多次碰到ScrollView嵌套ListView的问题,网上的解决方法有很多种,但是杂而不全.我试过很多种方法,它们各有利弊. 在这里我将会从使用ScrollView嵌套ListView结 ...
随机推荐
- PHP如何获取二个日期的相差天数?
我们经常需要获取二个日期之间相差的天数,方便客户知道距离某个时间段是相差了多少天数,这样的显示结果现在是越来越流行的了.不再像以前那样呆板的显示日期的了.我们这里就分享了二种方法可以获取到二个日期之间 ...
- CentOS6.3搭建Nginx代理访问MongoDB GridFS图片资源
PHP可以直接读取MongoDB GridFS中的图片并显示到页面中,但对PHP的压力就大了.偶然机会,了解到Nginx可以代理访问,实现过程如下: 1.工具准备 安装一些必要的编译工具及库,这里是直 ...
- Alcatraz,
今天重装Alcatraz,运行github上的命令后,安装成功,可是配置界面没出来. 无奈重装, 先删除原本的插件 rm -rf ~/Library/Application\ Support/Deve ...
- PHP PHPUnit的简单使用
1.window安装pear的教程:http://jingyan.baidu.com/article/ca41422fd8cf3d1eae99ed3e.html 2.在工作目录下,放两个文件: 1)C ...
- espcms内容页上下篇按后台手动排序号
模板文件: {%get name=plist class="did":$read.did,pid:$read.pid%} <li class="fl"&g ...
- python 单步调试初探(未完待续)
pdb 调试: import pdb pdb.set_trace() pudb 调试: http://python.jobbole.com/82638/
- MAC 远程桌面链接 证书或链接无效
RDC --> 首选项 --> 安全性 --> 勾选即使验证失败也要链接. 问题解决.
- MySql 连接字符串
一.MySQL Connector/ODBC 2.50 (MyODBC 2.50)连接方式 1.本地数据库连接Driver={MySQL};Server=localhost;Option=16834; ...
- 安天AVLTeam送福利喽~~
#福利来了# duang~duang~duang~ 安小天帮你辨别短信真伪!!! 是不是经常收到真假难辨的[疑似诈骗短信]是真的?是假的? 傻傻分不清楚 现在不用怕啦!!! 遇到这种情况,只需手机截 ...
- Android中Input型输入设备驱动原理分析(一)
转自:http://blog.csdn.net/eilianlau/article/details/6969361 话说Android中Event输入设备驱动原理分析还不如说Linux输入子系统呢,反 ...