Skip to content
Zardozz edited this page Mar 21, 2021 · 2 revisions

Welcome to the FixedHeaderTableLayout wiki!

Why Fixed Header Table Layout?

  • Compared to the Standard Table Layout

Standard Table Layout does not have have built in scrolling in both Horizontal and Vertical directions at the same time, you can wrap a Standard Table Layout in two layers of Standard ScrollViews (one Horizontal and one Vertical) but you can only scroll in one direction at once.

Standard Table Layout does not have the ability to fix a column header or row header that stays in place as you scroll and stays in sync with the table. Having fixed headers is vital to understand what the data is you are looking at once you start scrolling.

Standard Table Layout does not have the built in ability to zoom in and out on the table to aid navigation and understanding of the data.

  • Compared to the Grid Layout Manager for RecyclerView

Grid Layout Manager is very one dimensional with one dimension always a fixed size and the other scrollable.

Grid Layout Manager does not have the built in ability to zoom in and out on the table to aid navigation and understanding of the data.

Grid Layout Manager and RecyclerViews are more efficient at handling very large amounts of data.

Grid Layout Manager and RecyclerViews only have the ability to fix one header.

TableView addresses a lot of the drawbacks of a standard RecyclerView but is not zoomable and can occasionally have some size synchronisation issues. I have contributed to this and tried to make it zoomable before creating this library.

TableView has a fixed row heights and a fixed row header width.

TableView can only have one row or column in the headers.

Structure Overview

The Fixed Header Table Layout is composed of four main elements, each one is a FixedHeaderSubTableLayout as shown in the below picture.

Overview Picture

FixedHeaderSubTableLayouts are similar to Standard Table Layouts in that they are built up of a number of FixedHeaderTableRow elements with each FixedHeaderTableRow housing a number of other Views as individual Cells.