在Xamarin标签式页面模板中更改标签栏大小

时间:2018-10-12 00:34:10

标签: c# xamarin xamarin.forms

我已经花了2天的时间寻找答案,但找不到解决方法。我想要做的就是为使用滑动选项卡的模板更改android中“标签栏”的大小。我尝试使用自定义渲染器,样式,以编程方式进行设置,但没有任何东西可以实现我想要的功能。但是,我能够更改滑块的大小,字体和其他所有内容,但是在选项卡页中更改选项卡栏的高度似乎是不可能的。如果有人对此有任何解决方案,请随时告诉我。如果我在Xamarin.forms之外设置项目,我可以做到,但我实际上是在努力保持良好的跨平台解决方案,而不是为iOS和Android制作多个。

1 个答案:

答案 0 :(得分:0)

尝试使用以下代码:

public class StyledTabbedPageRenderer : TabbedPageRenderer
{
    private Android.Views.View formViewPager = null;
    private TabLayout tabLayout = null;

    protected override void OnElementChanged(ElementChangedEventArgs<TabbedPage> e)
    {
        base.OnElementChanged(e);

        this.tabLayout = (TabLayout)this.GetChildAt(1);

        changeTabsFont();
    }

    private void changeTabsFont()
    {
        //Typeface font = Typeface.CreateFromAsset(Android.App.Application.Context.Assets, "fonts/" + Constants.FontStyle);
        ViewGroup vg = (ViewGroup)tabLayout.GetChildAt(0);
        int tabsCount = vg.ChildCount;
        for (int j = 0; j < tabsCount; j++)
        {
            ViewGroup vgTab = (ViewGroup)vg.GetChildAt(j);
            int tabChildsCount = vgTab.ChildCount;
            for (int i = 0; i < tabChildsCount; i++)
            {
                Android.Views.View tabViewChild = vgTab.GetChildAt(i);
                if (tabViewChild is TextView)
                {
                    //((TextView)tabViewChild).Typeface = font;
                    ((TextView)tabViewChild).TextSize = 6;

                }
            }
        }
    }
}