Module  javafx.controls

Class VirtualFlow<T extends IndexedCell>

    • Property Detail

      • vertical

        public final BooleanProperty verticalProperty
        表明虚拟化的主要方向。 如果是真的,则虚拟化的主要方向是垂直的,这意味着单元将垂直堆叠在一起。 如果为false,那么它们将彼此水平叠放。
        另请参见:
        isVertical()setVertical(boolean)
      • cellCount

        public final IntegerProperty cellCountProperty
        表示流中应该有的单元格数。 VirtualFlow的用户必须正确设置。 当单元计数更改时,VirtualFlow将通过更新视觉效果进行响应。 如果支持单元格的项目更改,但计数未更改,则必须调用reconfigureCells()函数来更新视觉效果。
        另请参见:
        getCellCount()setCellCount(int)
      • fixedCellSize

        public final DoubleProperty fixedCellSizeProperty
        为了优化目的,一些用例可以交换动态单元格的速度 - 如果fixedCellSize大于零,我们将使用它,而不是通过查询单元本身来确定它。
        另请参见:
        getFixedCellSize()setFixedCellSize(double)
      • cellFactory

        public final ObjectProperty<Callback<VirtualFlow<T extends IndexedCell>,T extends IndexedCell>> cellFactoryProperty

        设置自定义单元格工厂具有推迟所有单元格创建的效果,允许对单元格进行全面定制。 在内部,VirtualFlow负责重用单元格,所有这些都是必需的,因为自定义单元格工厂可以从该函数返回可用于表示VirtualFlow中任何项目的单元格。

        有关更多详细信息,请参阅Cell类文档。

        另请参见:
        getCellFactory()setCellFactory(Callback)
    • 构造方法详细信息

      • VirtualFlow

        public VirtualFlow​()
        创建一个新的VirtualFlow实例。
    • 方法详细信息

      • setVertical

        public final void setVertical​(boolean value)
        设置属性垂直的值。
        Property description:
        表明虚拟化的主要方向。 如果是真的,则虚拟化的主要方向是垂直的,这意味着单元将垂直堆叠在一起。 如果为false,那么它们将彼此水平叠放。
      • isVertical

        public final boolean isVertical​()
        获取属性垂直的值。
        Property description:
        表明虚拟化的主要方向。 如果是真的,则虚拟化的主要方向是垂直的,这意味着单元将垂直堆叠在一起。 如果为false,那么它们将彼此水平叠放。
      • verticalProperty

        public final BooleanProperty verticalProperty​()
        表明虚拟化的主要方向。 如果是真的,则虚拟化的主要方向是垂直的,这意味着单元将垂直堆叠在一起。 如果为false,那么它们将彼此水平叠放。
        另请参见:
        isVertical()setVertical(boolean)
      • isPannable

        public final boolean isPannable​()
        获取pannable属性的值。
        Property description:
        指示VirtualFlow视口是否能够被用户平移(通过鼠标或触摸事件)。
      • setPannable

        public final void setPannable​(boolean value)
        设置pannable属性的值。
        Property description:
        指示VirtualFlow视口是否能够被用户平移(通过鼠标或触摸事件)。
      • getCellCount

        public final int getCellCount​()
        获取属性cellCount的值。
        Property description:
        表示流中应该有的单元格数。 VirtualFlow的用户必须正确设置。 当单元计数更改时,VirtualFlow将通过更新视觉效果进行响应。 如果支持单元格的项目更改,但计数未更改,则必须调用reconfigureCells()函数来更新视觉效果。
      • setCellCount

        public final void setCellCount​(int value)
        设置属性cellCount的值。
        Property description:
        表示流中应该有的单元格数。 VirtualFlow的用户必须正确设置。 当单元计数更改时,VirtualFlow将通过更新视觉效果进行响应。 如果支持单元格的项目更改,但计数未更改,则必须调用reconfigureCells()函数来更新视觉效果。
      • cellCountProperty

        public final IntegerProperty cellCountProperty​()
        表示流中应该有的单元格数。 VirtualFlow的用户必须正确设置。 当单元计数更改时,VirtualFlow将通过更新视觉效果进行响应。 如果支持单元格的项目更改,但计数未更改,则必须调用reconfigureCells()函数来更新视觉效果。
        另请参见:
        getCellCount()setCellCount(int)
      • getPosition

        public final double getPosition​()
        获取属性位置的值。
        Property description:
        VirtualFlow在其单元格列表中的位置。 这是介于0和1之间的值。
      • setPosition

        public final void setPosition​(double value)
        设置属性位置的值。
        Property description:
        VirtualFlow在其单元格列表中的位置。 这是介于0和1之间的值。
      • setFixedCellSize

        public final void setFixedCellSize​(double value)
        设置属性fixedCellSize的值。
        Property description:
        为了优化目的,一些用例可以交换动态单元格的速度 - 如果fixedCellSize大于零,我们将使用它,而不是通过查询单元本身来确定它。
      • getFixedCellSize

        public final double getFixedCellSize​()
        获取属性fixedCellSize的值。
        Property description:
        为了优化目的,一些用例可以交换动态单元格的速度 - 如果fixedCellSize大于零,我们将使用它,而不是通过查询单元本身来确定它。
      • fixedCellSizeProperty

        public final DoubleProperty fixedCellSizeProperty​()
        为了优化目的,一些用例可以交换动态单元格的速度 - 如果fixedCellSize大于零,我们将使用它,而不是通过查询单元本身来确定它。
        另请参见:
        getFixedCellSize()setFixedCellSize(double)
      • setCellFactory

        public final void setCellFactory​(Callback<VirtualFlow<T>,T> value)
        设置要在VirtualFlow中使用的新单元格工厂。 这将强制所有旧的单元格被丢弃,新的单元格将被创建与新的单元格工厂。
        参数
        value - 新 value
      • getCellFactory

        public final Callback<VirtualFlow<T>,T> getCellFactory​()
        返回当前的单元格工厂。
        结果
        目前的电池厂
      • cellFactoryProperty

        public final ObjectProperty<Callback<VirtualFlow<T>,T>> cellFactoryProperty​()

        设置自定义单元格工厂具有推迟所有单元格创建的效果,允许对单元格进行全面定制。 在内部,VirtualFlow负责重用单元格,所有这些都是必需的,因为自定义单元格工厂可以从该函数返回可用于表示VirtualFlow中任何项目的单元格。

        有关详细信息,请参阅Cell类文档。

        另请参见:
        getCellFactory()setCellFactory(Callback)
      • requestLayout

        public void requestLayout​()
        被覆盖来实现更有效地支持布局。 通常可以将VirtualFlow视为不受管理的,因为只要位置发生变化或其他这样的事情发生变化,我们需要执行布局,但没有理由通知父母。 但是,当事情发生变化时,可能会影响首选大小(例如垂直,createCell和configCell),那么我们需要通知父级。
        重写:
        requestLayoutParent
      • layoutChildren

        protected void layoutChildren​()
        在布局传递过程中调用这个Parent的孩子。 默认情况下,它只会将受管理的可调整大小的内容的大小设置为其首选大小,并且不会执行任何节点定位。

        子类应该根据需要重写此函数以布局内容。

        重写:
        layoutChildrenParent
      • setWidth

        protected void setWidth​(double value)
        设置属性宽度的值。
        重写:
        setWidthRegion
      • setHeight

        protected void setHeight​(double value)
        设置属性高度的值。
        重写:
        setHeightRegion
      • getAvailableCell

        protected T getAvailableCell​(int prefIndex)
        获取可以在布局中使用的单元格。 该功能将在可能的情况下从堆中重复使用单元格,并在必要时创建新的单元格。
        参数
        prefIndex - 首选指数
        结果
        可用的单元格
      • addAllToPile

        protected void addAllToPile​()
        此方法将从VirtualFlow中删除所有单元格,并将其删除,将其添加到“堆”(即,稍后可以使用单元格的位置)。 此方法受到保护,以允许子类正确清理。
      • getVisibleCell

        public T getVisibleCell​(int index)
        如果单元格已创建和布局,则获取给定索引的单元格。 “可见”有点不正确,单元格可能在视口中可能不可见(可能会被剪辑),但区分已创建和正在使用的单元格,而不是在堆中或未创建的单元格。
        参数
        index - 索引
        结果
        可见细胞
      • getLastVisibleCell

        public T getLastVisibleCell​()
        查找并返回当前部分或完全可见的最后一个非空IndexedCell。 如果没有单元格,或视口长度为0,则此函数可能返回null。
        结果
        最后一个可见单元格
      • getFirstVisibleCell

        public T getFirstVisibleCell​()
        找到并返回部分或完全可见的第一个非空IndexedCell。 这真的只有当没有单元格或视口长度为0时才返回null。
        结果
        第一个可见单元格
      • scrollToTop

        public void scrollToTop​(T firstCell)
        调整单元格的位置,使指定的单元格位于视口的开头。 给定的单元格必须已经是“活的”。
        参数
        firstCell - 第一个单元格
      • scrollToBottom

        public void scrollToBottom​(T lastCell)
        调整单元格的位置,使指定的单元格位于视口的末端。 给定的单元格必须已经是“活的”。
        参数
        lastCell - 最后一个单元格
      • scrollTo

        public void scrollTo​(T cell)
        调整单元格,使所选单元格在视口中完全可见(但仅仅)。
        参数
        cell - 电池
      • scrollTo

        public void scrollTo​(int index)
        调整单元格,使给定索引中的单元格在视口中完全可见。
        参数
        index - 索引
      • scrollToTop

        public void scrollToTop​(int index)
        调整单元格,使给定索引中的单元格在视口中完全可见,并位于视口的最顶端。
        参数
        index - 指数
      • scrollPixels

        public double scrollPixels​(double delta)
        给定一个代表像素数的增量值,该方法试图在给定的方向上移动VirtualFlow(正向下/向右,负向上/向左)给定的像素数。 它返回实际移动的像素数。
        参数
        delta - 差值
        结果
        实际移动的像素数
      • computePrefWidth

        protected double computePrefWidth​(double height)
        计算给定高度的该区域的首选宽度。 区域子类应该覆盖此方法,以根据其内容和布局策略返回适当的值。 如果子类没有VERTICAL内容偏差,则可以忽略height参数。
        重写:
        computePrefWidthRegion
        参数
        height - 如果首选宽度取决于应该使用的高度
        结果
        计算这个区域的首选宽度
      • computePrefHeight

        protected double computePrefHeight​(double width)
        计算给定宽度的该区域的首选高度; 区域子类应该覆盖此方法,以根据其内容和布局策略返回适当的值。 如果子类没有HORIZONTAL内容偏差,则可以忽略width参数。
        重写:
        computePrefHeightRegion
        参数
        width - 如果偏好的高度取决于应该使用的宽度
        结果
        该区域计算的优选高度
      • getCell

        public T getCell​(int index)
        返回给定索引的单元格。 这可以被调用到任何单元格,包括超出cellCount定义的范围,在这种情况下将返回一个空单元格。 返回的值不应由于任何原因存储。
        参数
        index - 索引
        结果
        细胞
      • setCellIndex

        protected void setCellIndex​(T cell,
                                    int index)
        VirtualFlow使用此方法设置单元 格索引(而不是直接调用 IndexedCell.updateIndex(int) ),因此如果感兴趣,它是子类覆盖的完美场所。
        参数
        cell - 索引将被更新的单元格。
        index - 单元格的新索引。
      • getCellIndex

        protected int getCellIndex​(T cell)
        返回给定单元格的索引。 这允许子类自定义如何检索单元格索引。
        参数
        cell - 细胞
        结果
        指数