listView顶部偏移
来源:互联网 发布:合肥美工 编辑:程序博客网 时间:2024/05/16 15:14
主要思想:
源代码中 listview第一个cell排版位置默认偏移为0
所以只需在排版时给第一个cell一个偏移posSet值即可
在uilistview.h中添加
void setPosSet(float posSet); float getPosSet();
float _posSet;
<span style="font-family: Arial, Helvetica, sans-serif;"> </span>然后在uiListView中修改
函数实现
void ListView::setPosSet(float posSet){ if (_posSet == posSet) { return; } _posSet = posSet; _refreshViewDirty = true;}float ListView::getPosSet(){ return _posSet; }
修改初始值
ListView::ListView():_model(nullptr),_gravity(Gravity::CENTER_VERTICAL),_itemsMargin(0.0f),_curSelectedIndex(0),_refreshViewDirty(true),_listViewEventListener(nullptr),_listViewEventSelector(nullptr),<strong><span style="color:#ff6666;">_posSet(0.0f),</span></strong>
设置内容的大小
void ListView::updateInnerContainerSize(){ switch (_direction) { case Direction::VERTICAL: { size_t length = _items.size(); <strong>float totalHeight = (length - 1) * _itemsMargin+<span style="color:#ff6666;">2*_posSet</span></strong>; for (auto& item : _items) { totalHeight += item->getContentSize().height; } float finalWidth = _contentSize.width; float finalHeight = totalHeight; setInnerContainerSize(Size(finalWidth, finalHeight)); break; } case Direction::HORIZONTAL: { size_t length = _items.size(); <strong>float totalWidth = (length - 1) * _itemsMargin+<span style="color:#ff6666;">2*<span style="font-family: Arial, Helvetica, sans-serif;">_posSet</span></span></strong><span style="font-family: Arial, Helvetica, sans-serif;">;</span> for (auto& item : _items) { totalWidth += item->getContentSize().width; } float finalWidth = totalWidth; float finalHeight = _contentSize.height; setInnerContainerSize(Size(finalWidth, finalHeight)); break; } default: break; }}修改竖向偏移
void ListView::remedyVerticalLayoutParameter(LinearLayoutParameter* layoutParameter, ssize_t itemIndex){ CCASSERT(nullptr != layoutParameter, "Layout parameter can't be nullptr!"); switch (_gravity) { case Gravity::LEFT: layoutParameter->setGravity(LinearLayoutParameter::LinearGravity::LEFT); break; case Gravity::RIGHT: layoutParameter->setGravity(LinearLayoutParameter::LinearGravity::RIGHT); break; case Gravity::CENTER_HORIZONTAL: layoutParameter->setGravity(LinearLayoutParameter::LinearGravity::CENTER_HORIZONTAL); break; default: break; } if (0 == itemIndex) { //layoutParameter->setMargin(Margin::ZERO); <span style="color:#ff6666;"><strong>layoutParameter->setMargin(Margin(0, _posSet, 0.0f, 0.0f));</strong></span> } else { layoutParameter->setMargin(Margin(0.0f, _itemsMargin, 0.0f, 0.0f)); }}修改横向偏移
void ListView::remedyHorizontalLayoutParameter(LinearLayoutParameter* layoutParameter, ssize_t itemIndex){ CCASSERT(nullptr != layoutParameter, "Layout parameter can't be nullptr!"); switch (_gravity) { case Gravity::TOP: layoutParameter->setGravity(LinearLayoutParameter::LinearGravity::TOP); break; case Gravity::BOTTOM: layoutParameter->setGravity(LinearLayoutParameter::LinearGravity::BOTTOM); break; case Gravity::CENTER_VERTICAL: layoutParameter->setGravity(LinearLayoutParameter::LinearGravity::CENTER_VERTICAL); break; default: break; } if (0 == itemIndex) { <strong><span style="color:#ff6666;">layoutParameter->setMargin(Margin(_posSet, 0.0f, 0.0f, 0.0f));</span></strong> } else { layoutParameter->setMargin(Margin(_itemsMargin, 0.0f, 0.0f, 0.0f)); }}
int lua_cocos2dx_ui_ListView_setPosSet(lua_State* tolua_S){ int argc = 0; cocos2d::ui::ListView* cobj = nullptr; bool ok = true;#if COCOS2D_DEBUG >= 1 tolua_Error tolua_err;#endif#if COCOS2D_DEBUG >= 1 if (!tolua_isusertype(tolua_S,1,"ccui.ListView",0,&tolua_err)) goto tolua_lerror;#endif cobj = (cocos2d::ui::ListView*)tolua_tousertype(tolua_S,1,0);#if COCOS2D_DEBUG >= 1 if (!cobj) { tolua_error(tolua_S,"invalid 'cobj' in function 'lua_cocos2dx_ui_ListView_setPosSet'", nullptr); return 0; }#endif argc = lua_gettop(tolua_S)-1; if (argc == 1) { double arg0; ok &= luaval_to_number(tolua_S, 2,&arg0, "ccui.ListView:setPosSet"); if(!ok) { tolua_error(tolua_S,"invalid arguments in function 'lua_cocos2dx_ui_ListView_<span style="font-family: Arial, Helvetica, sans-serif;">setPosSet</span><span style="font-family: Arial, Helvetica, sans-serif;">'", nullptr);</span> return 0; } cobj->setPosSet(arg0); lua_settop(tolua_S, 1); return 1; } luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "ccui.ListView:setPosSet",argc, 1); return 0;#if COCOS2D_DEBUG >= 1 tolua_lerror: tolua_error(tolua_S,"#ferror in function 'lua_cocos2dx_ui_ListView_setPosSet'.",&tolua_err);#endif return 0;}
int lua_cocos2dx_ui_ListView_getPosSet(lua_State* tolua_S){ int argc = 0; cocos2d::ui::ListView* cobj = nullptr; bool ok = true;#if COCOS2D_DEBUG >= 1 tolua_Error tolua_err;#endif#if COCOS2D_DEBUG >= 1 if (!tolua_isusertype(tolua_S,1,"ccui.ListView",0,&tolua_err)) goto tolua_lerror;#endif cobj = (cocos2d::ui::ListView*)tolua_tousertype(tolua_S,1,0);#if COCOS2D_DEBUG >= 1 if (!cobj) { tolua_error(tolua_S,"invalid 'cobj' in function 'lua_cocos2dx_ui_ListView_getPosSet'", nullptr); return 0; }#endif argc = lua_gettop(tolua_S)-1; if (argc == 0) { if(!ok) { tolua_error(tolua_S,"invalid arguments in function 'lua_cocos2dx_ui_ListView_getPosSet'", nullptr); return 0; } double ret = cobj->getPosSet(); tolua_pushnumber(tolua_S,(lua_Number)ret); return 1; } luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "ccui.ListView:getPosSet",argc, 0); return 0;#if COCOS2D_DEBUG >= 1 tolua_lerror: tolua_error(tolua_S,"#ferror in function 'lua_cocos2dx_ui_ListView_getPosSet'.",&tolua_err);#endif return 0;}
0 0
- listView顶部偏移
- listView返回顶部
- Listview 去除顶部阴影
- listview回滚到顶部
- ListView返回顶部问题
- ListView实现返回顶部
- listview回到顶部
- ListView回滚到顶部
- listview回到顶部
- listview 展示顶部
- ListView顶部悬浮效果
- listview的item向上偏移
- ListView和ScrollView 回到顶部
- android listview 滚动到顶部
- listview滑动顶部停靠(stickyListHeadersListView)
- listview有顶部view用法
- [Android] ListView 滚回顶部
- [Android] ListView 滚回顶部
- 使用 AngularJS 和 Electron 构建桌面应用
- iOS小demo之获取图片透明度
- Scala构建工具(SBT)教程
- 网页防止自动填充用户名密码
- rsync与scp对比
- listView顶部偏移
- Scala教程:简单构建工具SBT
- 把复杂变简单,能产生颠覆的力量
- hdu 2594 Simpsons’ Hidden Talents KMP算法
- iOS小demo之判断颜色深浅
- #3等保工具箱
- 流水灯
- 一小时快速理解git版本控制工具SourceTree
- [javaEE]JSP+Servlet+Mysql实现图片上传和分页显示(后续还会更新功能)