package com.reactnativenavigation.views.collapsingToolbar;
import com.reactnativenavigation.layouts.BottomTabsLayout;
import com.reactnativenavigation.params.StyleParams;
import com.reactnativenavigation.screens.Screen;
import com.reactnativenavigation.utils.ViewUtils;
public class CollapsingViewPagerContentViewMeasurer extends CollapsingViewMeasurer {
private int titleBarHeight;
private boolean layoutHasBottomTabs;
public CollapsingViewPagerContentViewMeasurer(final CollapsingTopBar topBar, final Screen screen, StyleParams styleParams) {
super(topBar, screen, styleParams);
ViewUtils.runOnPreDraw(screen, new Runnable() {
@Override
public void run() {
layoutHasBottomTabs = screen.getParent() instanceof BottomTabsLayout;
}
});
ViewUtils.runOnPreDraw(topBar, new Runnable() {
@Override
public void run() {
titleBarHeight = topBar.getTitleBarHeight();
}
});
}
@Override
public int getMeasuredHeight(int heightMeasureSpec) {
int height = screenHeight - topBar.getCollapsedHeight();
if (hasBottomTabs() && drawScreenUnderBottomTabs()) {
height -= bottomTabsHeight;
}
if (!styleParams.titleBarHideOnScroll) {
height -= titleBarHeight;
}
return height;
}
private boolean drawScreenUnderBottomTabs() {
return !styleParams.drawScreenAboveBottomTabs;
}
private boolean hasBottomTabs() {
return layoutHasBottomTabs && !styleParams.bottomTabsHidden;
}
}