如何在 Xamarin 中更改选定的选项卡标题颜色

How to change selected tab title color in Xamarin

我正在处理 xamarin 表单 TabbedPage。我必须只将选定的标签标题设为不同的颜色。

这是我的代码

<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
            xmlns:local="clr-namespace:go.Models" 
            xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
            x:Class="Bite2.ViewsForN.SubsView">
    <!--Tab 1 starts here-->
    <ContentPage Title="Buy Subscriptions">
        <StackLayout>
        </StackLayout>
    </ContentPage>
    
    <!--Tab 2 starts here-->
    <ContentPage Title="My Subscriptions">
        <StackLayout>
        </StackLayout>
        
    </ContentPage>
</TabbedPage>

在 customrender 中,我将选项卡文本颜色设置为灰色。选中的标签需要黑色,未选中的标签需要灰色。

  protected override void SetTabIconImageSource(Google.Android.Material.Tabs.TabLayout.Tab tab, Drawable icon)
    {
        base.SetTabIconImageSource(tab, icon);
        tab.SetCustomView(Resource.Layout.subscriptionsTabLayout);
        var title = tab.CustomView.FindViewById<TextView>(Resource.Id.tv);
        title.Text = tab.Text;
        ColorStateList csl = ColorStateList.ValueOf(Android.Graphics.Color.Gray);
        title.SetTextColor(csl);
    }

我该怎么做?

I need Black for selected tab and gray for unselected tab.

您不需要使用 CustomRender 来实现此目的。 您可以只使用 TabbedPage .

的属性 UnselectedTabColorSelectedTabColor

请参考以下代码:

<?xml version="1.0" encoding="UTF-8"?>
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
            xmlns:local="clr-namespace:TabbedPageWithNavigationPage;assembly=TabbedPageWithNavigationPage" 
            x:Class="TabbedPageWithNavigationPage.MainPage"
            UnselectedTabColor="Gray"
            SelectedTabColor="Black"
            >
    
</TabbedPage>