我正在使用 AppShell 和 Flyout 開發 Xamarin Forms 專案。我想更改導航標題的字體系列。我試圖找到解決方法,但不幸的是我無法解決這個問題。我的在線解決方案嘗試之一是使用下面的代碼使用自定義渲染。它給了我一個已過時的警告,NavigationPageRenderer當我運行它時,我得到一個例外。請幫助我找到更改導航標題字體系列的方法。
自定義渲染:
[assembly: ExportRenderer(typeof(AppShell), typeof(CustomNavigationPageRenderer))]
namespace MyApp.Droid.CustomRenderers
{
public class CustomNavigationPageRenderer : NavigationPageRenderer
{
private Android.Support.V7.Widget.Toolbar _toolbar;
public override void OnViewAdded(Android.Views.View child)
{
base.OnViewAdded(child);
if (child.GetType() == typeof(Android.Support.V7.Widget.Toolbar))
{
_toolbar = (Android.Support.V7.Widget.Toolbar)child;
_toolbar.ChildViewAdded = Toolbar_ChildViewAdded;
}
}
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
if (disposing)
{
_toolbar.ChildViewAdded -= Toolbar_ChildViewAdded;
}
}
private void Toolbar_ChildViewAdded(object sender, ChildViewAddedEventArgs e)
{
var view = e.Child.GetType();
if (e.Child.GetType() == typeof(Android.Widget.TextView))
{
var textView = (Android.Widget.TextView)e.Child;
var spaceFont = Typeface.CreateFromAsset(Forms.Context.ApplicationContext.Assets, "Montserrat-SemiBold.ttf");
textView.Typeface = spaceFont;
_toolbar.ChildViewAdded -= Toolbar_ChildViewAdded;
}
}
}
}
警告:
'NavigationPageRenderer.NavigationPageRenderer()' is obsolete: 'This constructor is obsolete as of version 2.5. Please use NavigationPageRenderer(Context) instead.
拋出例外:( 在'MainActivity'類中的'LoadApplication(new App())')
System.ArgumentException: 'element is not of type Xamarin.Forms.NavigationPage
Parameter name: element'
uj5u.com熱心網友回復:
你能試試這個嗎?在您要更改標題字體的頁面中并在添加服裝字體后,將其添加到 xaml.xml 中。將 FontFamily 更改為您想要的字體。
<NavigationPage.TitleView>
<StackLayout>
<Label FontFamily=""/>
</StackLayout>
</NavigationPage.TitleView>
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/425094.html
