当前位置: 首页 > 工具软件 > UIListView > 使用案例 >

5.9.11UIListView

鲁滨海
2023-12-01
ListView
Is Dirty: 已更新

virtual void sortAllChildren( ) 

在绘画之前,排列所有的孩子数组一次,而不是每次添加或者删除子节点时都排序。 这个方法可以大量地提高性能。

注解
不要手动调用这个方法,除非一个添加过的子节点将要被删除在这个结构内。

Gravity  /'grævɪtɪ/ 重力
class CC_GUI_DLL ListView : public ScrollView
    enum class Gravity
    { //设置 items 在ListVew中对齐方式
        LEFT, //靠左对齐
        RIGHT, //靠右对齐
        CENTER_HORIZONTAL, //水平居中
        TOP, //靠顶对齐
        BOTTOM, //靠底对齐
        CENTER_VERTICAL //竖直居中
    };
   
   
enum class EventType
    {
        ON_SELECTED_ITEM_START,
        ON_SELECTED_ITEM_END
    };

void setItemModel( Widget * model);
    void pushBackDefaultItem(); //添加一个默认模板的子项
    void insertDefaultItem( ssize_t index); //在指定下标位置上插入一个模板子项
    void pushBackCustomItem( Widget * item); //添加一个自定义的子项
    void insertCustomItem( Widget * item, ssize_t index); //在指定下标位置上插入一个自定义子项
    void removeLastItem(); //移除最后一个子项
    void removeItem( ssize_t index); //移除指定下标值的子项
    void removeAllItems(); //移除全部的子项
    Widget * getItem( ssize_t index) const ; //通过下标值获取item
    Vector < Widget *>& getItems(); //获取item数组
    ssize_t getIndex( Widget * item) const ; //获取给定item的下标值
    void setGravity( Gravity gravity); //设置 items 在ListVew中对齐方式
    void setItemsMargin( float margin); //设置每个子项之间的间隙
    float getItemsMargin() const ;
    virtual void doLayout() override;
   
   
virtual void addChild( Node * child)override;
   
virtual void addChild( Node * child, int localZOrder)override;
   
virtual void addChild( Node * child, int zOrder, int tag) override;
   
virtual void addChild( Node * child, int zOrder, const std :: string &name) override;
   
virtual void removeAllChildren() override;
   
virtual void removeAllChildrenWithCleanup( bool cleanup) override;
virtual void removeChild( Node * child, bool cleaup = true ) override;
   
    ssize_t getCurSelectedIndex() const; //获取当前选择的下标值
   
   
CC_DEPRECATED_ATTRIBUTE void addEventListenerListView( Ref * target, SEL_ListViewEvent selector);
   
void addEventListener( const ccListViewCallback & callback);
    using ScrollView::addEventListener; //***************
    virtual void setDirection( Direction dir) override;
   
   
virtual std :: string getDescription() const override;
   
    void requestRefreshView(); //请求刷新视图
    void refreshView();

CC_CONSTRUCTOR_ACCESS :
   
virtual bool init() override;
   
protected :
   
   
void updateInnerContainerSize();
   
void remedyLayoutParameter( Widget * item);
   
virtual void onSizeChanged() override;
   
virtual Widget * createCloneInstance() override;
   
virtual void copySpecialProperties( Widget * model) override;
   
virtual void copyClonedWidgetChildren( Widget * model) override;
   
void selectedItemEvent( TouchEventType event);
   
virtual void interceptTouchEvent( Widget :: TouchEventType event, Widget * sender, Touch * touch) override;
protected :
   
Widget * _model;
   
   
Vector < Widget *> _items;
   
   
Gravity _gravity;
   
   
float _itemsMargin;
   
   
ssize_t _curSelectedIndex;
   
bool _refreshViewDirty;
 类似资料:

相关阅读

相关文章

相关问答