Comcast FreeFlow Documentation

repository·master·Indexed 25 days ago

https://github.com/comcast/freeflow

An Android layout engine that decouples layouts from view containers to enable swappable layouts at runtime and smooth transition animations. It consists of FreeFlowContainer, FreeFlowLayout, FreeFlowLayoutAnimator, and SectionedAdapter. Note: This library is deprecated in favor of RecyclerView.

Tokens
366
Snippets
0
Records
2
Agent score
32%

What's inside FreeFlow

  1. What is FreeFlow and its core architecture

    master

    FreeFlow is an Android layout engine designed to decouple layouts from the View containers that manage scrolling and view recycling. Unlike standard Android layouts, FreeFlow layouts are swappable at runtime, allowing views to transition smoothly between different states. It follows a composition-based approach, inspired by iOS UICollectionView and the Spark Architecture in Flex.

    Note: FreeFlow is no longer under development. The maintainers recommend using RecyclerView for similar functionality.

  2. How FreeFlow's building blocks work together

    master

    FreeFlow's architecture is composed of four primary parts that work in coordination to manage views and layouts:

    1. FreeFlowContainer: The core ViewGroup that acts as the parent and holds all child Views.
    2. FreeFlowLayout: Responsible for calculating and defining the Rect objects used to position Views within the container.
    3. FreeFlowLayoutAnimator: An animator that handles the visual transitions of Views when their position Rects change due to a layout update.
    4. SectionedAdapter: A data adapter that provides View instances based on the data being rendered. It supports the concept of Sections to segment data (e.g., grouping contacts by character).

    Helper Classes & Built-in Layouts:

    • DefaultLayoutAnimator: A configurable helper that automatically transitions views when they are added, moved, or removed.
    • Built-in Layouts: Includes HLayout, VLayout, HGridLayout, and VGridLayout.