禁用 Shell TabBar 中的阴影动画

Posted

技术标签:

【中文标题】禁用 Shell TabBar 中的阴影动画【英文标题】:Disable the Shadow Animation in Shell TabBar 【发布时间】:2021-12-28 19:31:00 【问题描述】:

如果我在不同的标签之间切换,我总是会看到这个看起来像阴影或某物的小点击动画。 我为我的 Shell 使用自定义渲染器,但如何禁用此动画?

Here is a picture of the click animation

【问题讨论】:

检查标签的描述——这里的“shell”标签是针对基于文本的交互式命令解释器。据我所知,这与这个问题无关。 ...至于问题,minimal reproducible example 显示重现不良行为的最短代码将是一个不错的起点。 请提供足够的代码,以便其他人更好地理解或重现问题。 【参考方案1】:

我自己找到了解决方案。这是我的代码:

        public void ResetAppearance(BottomNavigationView bottomView)
        
            
        
        public void SetAppearance(BottomNavigationView bottomView, IShellAppearanceElement appearance)
        
            android.Graphics.Color elevationBGColor = ((Color)Xamarin.Forms.Application.Current.Resources["ElevationBGColor"]).ToAndroid();


            bottomView.LabelVisibilityMode = LabelVisibilityMode.LabelVisibilityUnlabeled;
            bottomView.SetBackgroundColor(elevationBGColor);
            int[][] Tintstates = new int[][]
            
                new int[] -Android.Resource.Attribute.StateChecked, // unchecked
                new int[]  Android.Resource.Attribute.StateChecked  // pressed
            ;

            int[] Tintcolors = new int[]
            
                Xamarin.Forms.Color.White.ToAndroid(),
                ((Color)Xamarin.Forms.Application.Current.Resources["PrimaryColor"]).ToAndroid()
            ;

            ColorStateList TintList = new ColorStateList(Tintstates, Tintcolors)

            bottomView.ItemIconTintList = TintList;
            bottomView.ItemRippleColor = null;
        

在这段代码中,我还为我在导航栏中选择的项目设置了颜色更改,但我正在搜索的代码是

bottomView.ItemRippleColor = null;

【讨论】:

以上是关于禁用 Shell TabBar 中的阴影动画的主要内容,如果未能解决你的问题,请参考以下文章

垂直窗口 TabBar 菜单和颤动中的动画指示器

Xamarin Forms iOS - 奇怪的外壳阴影

ListRowPresenter 禁用阴影禁用视图重叠

如何向 Xamarin Forms App Shell Tabbar 添加顶部边框

iOS TabBar添加阴影

去掉tabbar顶部的阴影线