-2

Aşağıdaki bağlantılarla kontrol ettim ve uygulandım: Android Action Bar Tabs, Styling the Icon and Text together Ve şimdi resmin üstündeki metni görebiliyorum. Tablonun yüksekliğini artırmak için tabbarın yüksekliğini artırmak istiyorum. Ayrıca, How to change action bar size & https://blog.xamarin.com/material-design-for-your-xamarin-forms-android-apps/'u da kontrol ettim. Ve benim Xamarin.Forms projemde AppCompatActivity'yi uygulamaya çalıştım. İlk olarak, android aktivitesi global::Xamarin.Forms.Platform.Android.FormsApplicationActivity'dan türetildi ve şimdi global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity'a dönüştürüldü. Ve özel Renderer, TabbedPage için uygulandı. AppCompatActivity için TabbedPageRender'a dönüştürülmesi gerektiğini biliyorum. Bu yüzden işleyiciyi de güncelledim. Ancak şimdi özel oluşturucu çağrılmıyor. Ve AppCompatActivity için yerleştirilen Tabbar'ın yüksekliğini değiştiremiyorum. Neyi yanlış yaptığımı bana bildirin. Teşekkür ederiz.Xamarin.Forms Simüle ve Metin ile özel Android Tabbar

+0

Sorular Bunu ** kendi başına üretme **. ** açık bir problem ifadesi ** olmayan sorular, diğer okuyucular için yararlı değildir. Bakınız: [Minimal, Tam ve Doğrulanabilir bir örnek nasıl oluşturulur?] (Http://stackoverflow.com/help/mcve) –

cevap

0

Kodunuz varsa, lütfen gönderin. etkinlik olarak

  1. , sen

    olup olmadığını kontrol

    FormsAppCompatActivity.ToolbarResource = Resource.Layout.toolbar; FormsAppCompatActivity.TabLayoutResource = Resource.Layout.tabs; OnCreate yönteminde

, aynı zamanda içeri/kaynaklar/düzen klasörüne toolbar.xml ve tabs.xml gerekir.

  • TabbedPageRenderer doesn:

    [ExportRenderer (typeof (YourTabbedPage) typeof (YourTabbedPageRenderer)) montaj] Eklemek için işleyici sınıfta

  • , emin olun

      't dolayısıyla yansıma gerekli sizin için tablayout maruz

      public class YourTabbedPageRenderer: TabbedPageRenderer { özel TabLayout _myTabLayout;

      protected override void OnElementChanged(ElementChangedEventArgs<TabbedPage> e) 
      { 
          base.OnElementChanged(e); 
      
          var fieldInfo = typeof (TabbedPageRenderer).GetField("_tabLayout", BindingFlags.Instance | BindingFlags.NonPublic); 
          System.Diagnostics.Debug.Assert(fieldInfo != null, "fieldInfo != null"); 
          _myTabLayout = (TabLayout) fieldInfo.GetValue(this); 
      
          // Uncomment to Disable scrolling 
          //var propInfo = typeof (TabbedPageRenderer).GetProperty("UseAnimations", BindingFlags.Instance | BindingFlags.NonPublic); 
          //propInfo.SetValue(this, false); 
      
          if (e.OldElement != null) 
          { 
      
          } 
      
          if (e.NewElement != null) 
          { 
           if (_myTabLayout.TabCount != this.Element.Children.Count) 
            return; 
      
           for (int index = 0; index < this.Element.Children.Count; ++index) 
           { 
            _myTabLayout.GetTabAt(index).SetText(""); 
      
            FileImageSource icon = this.Element.Children[index].Icon; 
      
            if (string.IsNullOrEmpty(icon)) 
             continue; 
      
            var imageView = new AppCompatImageView(this.Context); 
            imageView.SetPadding(4, 4, 4, 4); 
            var drawable = ResourceManager.GetDrawableByName(icon.File); 
            imageView.SetImageResource(drawable); 
            _myTabLayout.GetTabAt(index).SetCustomView(imageView); 
           } 
      
           _myTabLayout.GetTabAt(0).Select(); 
          } 
      } 
      

      } istenilen davranışı, bir _specific problemi ya Hata_ ve _The en kısa kod necessary_ içermelidir ayıklama yardım (** "neden bu kod çalışmıyor?" **) arayan

  • İlgili konular