如何在Xamarin.Droid中更改选项卡式页面指示器的颜色?

时间:2016-10-26 08:11:58

标签: c# xamarin xamarin.android indicator tabbedpage

我正在使用 Xamarin.Forms 和一个可移植类库构建一个应用程序。我有一个标签页。我想更改选项卡式页面指示器的颜色。更改布局的其余部分是我已经管理过的,我唯一需要的是更改浅蓝色标签页指示器,如下所示:
enter image description here

我找不到任何可以在Xamarin.Droid中使用的东西。这是创建带有内容的选项卡页面的代码:

class TabbedPageTry : TabbedPage
{
    public TabbedPageTry()
    { 
        Title = "TabbedPage";

        var myPages = new CategoryDAO().GetCategories();
        foreach (var item in myPages)
        {
            Children.Add(new TabPage(item.CategoryID) { BindingContext = item });
        }
    }

    public class TabPage : ContentPage
    {
        public TabPage(int categoryID)
        {
            Padding = new Thickness(0, Device.OnPlatform(20, 0, 0), 0, 0);

            var listView = new ListView
            {

                SeparatorColor = Color.FromHex("#101010"),
                ItemsSource = new CourseDAO().GetCourses(),
                IsPullToRefreshEnabled = false,
                BackgroundColor = Color.White,
            };

            this.SetBinding(Page.TitleProperty, "Name");
            Content = listView;
        }
}

因为应用程序正在使用Xamarin.Forms制作Visual Studio,我的问题尚未得到解答。我发现的所有问题都是针对Android的,这是我想要的。我需要的是解决我问题的C#解决方案。

提前谢谢。

3 个答案:

答案 0 :(得分:8)

如果您在Android平台项目中using AppCompat,则在TabLayout axml文件中使用tabIndicatorColor属性执行此操作:

<android.support.design.widget.TabLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/sliding_tabs"
   ....
    app:tabIndicatorColor="#123456" />

答案 1 :(得分:3)

如果您使用的是FormsAppCompatActivity(Material Design),那么您只需打开droid项目资源文件夹中的Tabbar.axml文件,然后更改{的颜色集{1}}。例如,

app:tabIndicatorColor

答案 2 :(得分:1)

mainview.xaml.cs的公共MainView()内部:

On<Xamarin.Forms.PlatformConfiguration.Android>().SetBarSelectedItemColor(enter color here)

On<Xamarin.Forms.PlatformConfiguration.Android>().SetBarItemColor(enter color here)