public void wrapTabIndicatorToTitle(TabLayout tabLayout, int externalMargin, int internalMargin) { View tabStrip = tabLayout.GetChildAt(0); if (tabStrip is ViewGroup) { ViewGroup tabStripGroup = (ViewGroup)tabStrip; int childCount = ((ViewGroup)tabStrip).ChildCount; for (int i = 0; i < childCount; i++) { View tabView = tabStripGroup.GetChildAt(i); tabView.SetMinimumWidth(0); tabView.SetPadding(0, tabView.PaddingTop, 0, tabView.PaddingBottom); if (tabView.LayoutParameters is ViewGroup.MarginLayoutParams) { ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams)tabView.LayoutParameters; if (i == 0) { setMargin(layoutParams, externalMargin, internalMargin); } else if (i == childCount - 1) { setMargin(layoutParams, internalMargin, externalMargin); } else { setMargin(layoutParams, internalMargin, internalMargin); } } } tabLayout.RequestLayout(); } }
private void updateLayoutHeight() { var newHeight = heights[(int)editorMode]; tabLayout.RequestLayout(); controlButtons.ForceLayout(); Activity.RunOnUiThread(() => { var heightInPixels = newHeight.DpToPixels(Context); var pagerLayout = pager.LayoutParameters; pagerLayout.Height = heightInPixels; pager.LayoutParameters = pagerLayout; Dialog.Window.SetDefaultDialogLayout(Activity, Context, heightDp: ViewGroup.LayoutParams.WrapContent); }); }