При вызове метода requestLayout() на ViewGroup, новое измерение дочерних view не гарантируется. Вместо этого используются закэшированные значения.

Метод View.forceLayout() инвалидирует закэшированные размеры view, чем провоцирует измерение, при вызове requestLayout() на родительском ViewGroup.

forceLayout() не вызывает requestLayout() на view, или ее родителях. Этот метод используется только в связке с requestLayout().