繁体   English   中英

如何使用Xamarin.Forms在Android TabBar中禁用滑动动画?

[英]How to disable sliding animation in Android TabBar with Xamarin.Forms?

我正在使用TabbedPage ,每当我选择一个新的Tab时,都会有一个滑动动画。 我想禁用滑动动画

有一个Xamarin Sample可以执行此操作,而没有滑动动画。 我该如何复制?

在AppActivity中使用自定义ToolBar和TabBar以及FormsAppCompatActivity。

Xamarin提供的Sample不是 ,因此我不确定如何禁用这些动画。

谢谢

此处描述的本机方法类似。 这可以使用自定义渲染器完成:

[assembly: ExportRenderer(typeof(TabsPage), typeof(TabsPageRenderer))]
namespace App.Droid.Renderers
{
    public class TabsPageRenderer : BadgedTabbedPageRenderer
    {
        ViewPager _viewPager;
        TabLayout _tabLayout;

        protected override void OnElementChanged(ElementChangedEventArgs<TabbedPage> e)
        {
            base.OnElementChanged(e);

            for (int i = 0; i < ChildCount; i++)
            {
                var v = GetChildAt(i);
                if (v is ViewPager)
                    _viewPager = (ViewPager)v;
                else if (v is TabLayout)
                    _tabLayout = (TabLayout)v;
            }

            _viewPager.SetPageTransformer(true, new NoAnimationPageTransformer());

        }

    }

    public class NoAnimationPageTransformer : Java.Lang.Object, Android.Support.V4.View.ViewPager.IPageTransformer
    {
        public void TransformPage(Android.Views.View view, float position)
        {
            if (position < 0)
            {
                view.ScrollX = (int)((float)(view.Width) * position);
            }
            else if (position > 0)
            {
              view.ScrollX = -(int)((float)(view.Width) * -position);
            }
            else
            {
              view.ScrollX = 0;
            }

        }

    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM