-------------------------------

--@ 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 嵌套 折叠效果的更多相关文章

  1. 阻尼回弹效果的ScrollView嵌套GridView

    以前写过一篇带阻尼回弹效果的ScrollView,但是有些小问题,于是又重新整理了一下,这篇文章一是一个带阻尼的Scrollview,再个就是Scrollview嵌套GridView实现,而GridV ...

  2. Android仿掌上英雄联盟首页,实现折叠效果

    概述 仿掌上英雄联盟首页的demo 详细 代码下载:http://www.demodashi.com/demo/10695.html 首页大概分为几个部分 状态栏 标题栏 轮播图 切换的Tab 资讯列 ...

  3. 关于ScrollView嵌套ListView问题

    Android开发之ScrollView中嵌套ListView的解决方案   原文:http://blog.csdn.net/minimicall/article/details/40983331   ...

  4. (转)ViewPager,ScrollView 嵌套ViewPager滑动冲突解决

    ViewPager,ScrollView 嵌套ViewPager滑动冲突解决 本篇主要讲解一下几个问题 粗略地介绍一下View的事件分发机制 解决事件滑动冲突的思路及方法 ScrollView 里面嵌 ...

  5. 四种方案解决ScrollView嵌套ListView问题(转)

    以下文章转自@安卓泡面 在工作中,曾多次碰到ScrollView嵌套ListView的问题,网上的解决方法有很多种,但是杂而不全.我试过很多种方法,它们各有利弊. 在这里我将会从使用ScrollVie ...

  6. Scrollview 嵌套 RecyclerView 及在Android 5.1版本滑动时 惯性消失问题

    标签:scrollview   android   滑动   嵌套 scrollview 嵌套recyclerview 时,recyclerview不显示,这就需要我们自己计算recyclerview ...

  7. 冲突--ScrollView嵌套ListView冲突问题的最优解决方案

    项目做多了之后,会发现其实 ScrollView嵌套ListVew或者GridView等很常用,但是你也会发现各种奇怪问题产生.根据个人经验现在列出常见问题以及代码最少最简单的解决方法. 问题一 :  ...

  8. android 解决ScrollView嵌套ListView的问题,不能全屏,全屏不能显示下面控件

    在开发中遇到ScrollView嵌套ListView的问题,最开始发出不能全屏,效果是这样的: 但我想要的效果是这样的: 下面看一下布局文件: <?xml version="1.0&q ...

  9. ScrollView嵌套ListView的滑动冲突问题,是看大神的方法的,作为学习以后用的到

    在工作中,曾多次碰到ScrollView嵌套ListView的问题,网上的解决方法有很多种,但是杂而不全.我试过很多种方法,它们各有利弊. 在这里我将会从使用ScrollView嵌套ListView结 ...

随机推荐

  1. average slice

    A non-empty zero-indexed array A consisting of N integers is given. A pair of integers (P, Q), such ...

  2. PHP正则表达式详解(一)

    前言: 半年前我对正则表达式产生了兴趣,在网上查找过不少资料,看过不少的教程,最后在使用一个正则表达式工具RegexBuddy时,发现他的教程写的非常好,可以说是我目前见过最好的正则表达式教程.于是一 ...

  3. MySQL字段自增长AUTO_INCREMENT的学习笔记

    1.创建表时指定AUTO_INCREMENT自增值的初始值(即起始值): CREATE TABLE XXX (ID INT(5) PRIMARY KEY AUTO_INCREMENT) AUTO_IN ...

  4. .NET读取Excel数据,提示错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序

    解决.NET读取Excel数据时,提示错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序的操作: 1. 检查本机是否安装Office Access,如果未安装去去h ...

  5. python虚拟机中的异常流控制

    异常:对程序运行中的非正常情况进行抽象.并且提供相应的语法结构和语义元素,使得程序员能够通过这些语法结构和语义元素来方便地描述异常发生时的行为. 1.Python中的异常机制: 1.1Python虚拟 ...

  6. Python入门(一)

    Python版本:Python 2.7.5 Python是一种面向对象.解释型计算机程序设计语言 1.基本操作符python的除法的结果会随着数值类型的变化而变化整数相除,结果会取整实数相除,结果会取 ...

  7. BZOJ 1770: [Usaco2009 Nov]lights 燈

    Description 一个图,对一个点进行操作会改变这个点及其相邻的点的状态,问全部变成黑色至少需要几次.数据保证有解. Sol Meet in middle. 我一开始写个高斯消元,发现有两个点过 ...

  8. PDO和PDOStatement类常用方法

    PDO — PDO 类 PDO::beginTransaction — 启动一个事务 PDO::commit — 提交一个事务 PDO::__construct — 创建一个表示数据库连接的 PDO ...

  9. 告别我的OI生涯

    本文章写于2008年12月15日. 随着2008noip的结束,我也结束了我的OI生涯. 信息竞赛也许是从小到大让我最最努力的一件事.我记得参加2006noip初赛前,每天中午为了上信息课都吃不上中午 ...

  10. git mac客户端使用提交与同步

    点击file -> add local  repository 将本地已经存在的git库添加到客户端中 当项目有改变时,点击正上方居中的Uncommitted Change按钮查看改变的内容 在 ...