Xamarin Forms android tabpage 自定义渲染器不同的颜色
Xamarin Forms android tabpage custom renderer different colors
我正在尝试为 Android TabbedPage
创建一个 CustomRenderer
最后一个标签的不同颜色。
但是,以下代码无法运行。我该如何解决这个问题?
protected override void OnVisibilityChanged(Android.Views.View changedView, [GeneratedEnum] ViewStates visibility)
{
base.OnVisibilityChanged(changedView, visibility);
if(visibility == ViewStates.Visible)
{
var tabs = changedView.FindViewById<TabLayout>(Resource.Id.sliding_tabs);
ViewGroup vg = (ViewGroup)tabs.GetChildAt(0);
ViewGroup vgTab = (ViewGroup)vg.GetChildAt(vg.ChildCount - 1);
for (int i = 0; i < vgTab.ChildCount; i++)
{
Android.Views.View tabViewChild = vgTab.GetChildAt(i);
if(tabViewChild is Android.Widget.ImageView)
{
(tabViewChild as Android.Widget.ImageView).SetBackgroundColor(Android.Graphics.Color.Red);
}
}
}
}
所以,解决方案很简单
ViewGroup vg = (ViewGroup)_tabs.GetChildAt(0);
ViewGroup vgTab = (ViewGroup)vg.GetChildAt(vg.ChildCount - 1);
vgTab.SetBackgroundColor(Android.Graphics.Color.ParseColor("#E91E63"));
我正在尝试为 Android TabbedPage
创建一个 CustomRenderer
最后一个标签的不同颜色。
但是,以下代码无法运行。我该如何解决这个问题?
protected override void OnVisibilityChanged(Android.Views.View changedView, [GeneratedEnum] ViewStates visibility)
{
base.OnVisibilityChanged(changedView, visibility);
if(visibility == ViewStates.Visible)
{
var tabs = changedView.FindViewById<TabLayout>(Resource.Id.sliding_tabs);
ViewGroup vg = (ViewGroup)tabs.GetChildAt(0);
ViewGroup vgTab = (ViewGroup)vg.GetChildAt(vg.ChildCount - 1);
for (int i = 0; i < vgTab.ChildCount; i++)
{
Android.Views.View tabViewChild = vgTab.GetChildAt(i);
if(tabViewChild is Android.Widget.ImageView)
{
(tabViewChild as Android.Widget.ImageView).SetBackgroundColor(Android.Graphics.Color.Red);
}
}
}
}
所以,解决方案很简单
ViewGroup vg = (ViewGroup)_tabs.GetChildAt(0);
ViewGroup vgTab = (ViewGroup)vg.GetChildAt(vg.ChildCount - 1);
vgTab.SetBackgroundColor(Android.Graphics.Color.ParseColor("#E91E63"));