2017-06-06 36 views
0

我使用的是TabbedPage,並且每當我選擇一個新選項卡時,都會出現滑動動畫。我想禁用滑動動畫如何使用Xamarin.Forms禁用Android TabBar中的滑動動畫?

有一個Xamarin Sample這樣做,沒有滑動動畫。我怎樣才能複製這個?

我在我的AppActivity中使用自定義的工具欄和TabBar以及FormsAppCompatActivity。

Xamarin提供的示例不是,所以我不確定如何禁用這些動畫。

謝謝

回答

0

到本地方法類似描述here。這可以使用自定義渲染器完成:

[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; 
      } 

     } 

    } 

}