/// <summary> /// Get this BottomBar's height (or width), depending if the BottomBar /// is on the bottom (phones) or the left (tablets) of the screen. /// </summary> /// <param name="listener">listener <see cref="IOnSizeDeterminedListener"/> to get the size when it's ready.</param> public void GetBarSize(IOnSizeDeterminedListener listener) { int sizeCandidate = _isTabletMode ? OuterContainer.Width : OuterContainer.Height; if (sizeCandidate == 0) { OuterContainer.ViewTreeObserver.AddOnGlobalLayoutListener(new BarSizeOnGlobalLayoutListener(listener, _isTabletMode, OuterContainer)); return; } listener.OnSizeReady(sizeCandidate); }
public BarSizeOnGlobalLayoutListener(IOnSizeDeterminedListener listener, bool isTabletMode, ViewGroup outerContainer) { _listener = listener; _isTabletMode = isTabletMode; _outerContainer = outerContainer; }