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
-2
A
cevap
0
Kodunuz varsa, lütfen gönderin. etkinlik olarak
, sen
olup olmadığını kontrolFormsAppCompatActivity.ToolbarResource = Resource.Layout.toolbar; FormsAppCompatActivity.TabLayoutResource = Resource.Layout.tabs; OnCreate yönteminde
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
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) –