如何更改Android中选项卡页面标题的选定和未选定颜色:Xamarin Forms
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何更改Android中选项卡页面标题的选定和未选定颜色:Xamarin Forms相关的知识,希望对你有一定的参考价值。
我有一个带有5个孩子的Xamarin Forms选项卡页面:
如图所示,所选和未选定选项卡的图标颜色不同。我想在每个标签Title
上发生同样的事情。这可能吗?
编辑:此功能在ios中完美运行。我正在寻找特定于android的渲染器。
以下是Android渲染器代码,负责更改子项的选定和未选中图标的颜色:
public class MyTabbedPageRenderer: TabbedPageRenderer
{
bool setup;
ViewPager viewPager;
TabLayout tabLayout;
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
if (setup)
return;
if (e.PropertyName == "Renderer")
{
viewPager = (ViewPager)ViewGroup.GetChildAt(0);
tabLayout = (TabLayout)ViewGroup.GetChildAt(1);
setup = true;
ColorStateList colors = null;
if ((int)Build.VERSION.SdkInt >= 23)
{
colors = Resources.GetColorStateList(Resource.Color.icon_tab, Forms.Context.Theme);
}
else
{
colors = Resources.GetColorStateList(Resource.Color.icon_tab);
}
for (int i = 0; i < tabLayout.TabCount; i++)
{
var tab = tabLayout.GetTabAt(i);
var icon = tab.Icon;
if (icon != null)
{
icon = Android.Support.V4.Graphics.Drawable.DrawableCompat.Wrap(icon);
Android.Support.V4.Graphics.Drawable.DrawableCompat.SetTintList(icon, colors);
}
}
}
}
}
在Resources - > Color
文件夹中,我有以下xml
文件:
<?xml version="1.0" encoding="UTF-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#2196F3" android:state_selected="true" />
<item android:color="#b2b2b2" />
</selector>
答案
尝试在每个选项卡/页面上使用OnAppearing()和OnDisappearing()覆盖来更改图标的颜色或图像。
另一答案
转到Project.Droid,文件夹资源,布局和单击,使用wright按钮,打开方式,XML编辑器。在文件中,编辑:
app:tabSelectedTextColor="#ffffff
更改代码颜色的#ffffff。我希望它有效。
您还可以将app:tabTextColor="#80ffffff"
更改为与Icon相同的颜色
以上是关于如何更改Android中选项卡页面标题的选定和未选定颜色:Xamarin Forms的主要内容,如果未能解决你的问题,请参考以下文章