首页 > 解决方案 > 设置 ActionMenuView 字体系列/字体

问题描述

我目前正在开发 Xamarin 上的应用程序,并且我正在尝试设置 ActionMenuView 的字体系列(在导航栏上),但我没有发现在此对象上设置字体系列。

此外,我想设置标题的字体系列并制作了一个完美运行的自定义渲染器。所以我对 ActionMenuView 进行了同样的尝试,但它没有任何字体/字体系列属性。

我的自定义渲染器(工作):

    private void Toolbar_ChildViewAdded(object sender, ChildViewAddedEventArgs e)
    {
        // here I can pass on the ActionMenuView object but it does not have any typeface property?
        if (e.Child.GetType() == typeof(Android.Support.V7.Widget.AppCompatTextView))
        {
            Android.Support.V7.Widget.AppCompatTextView AppCompatTextView = ((Android.Support.V7.Widget.AppCompatTextView)e.Child);
            AppCompatTextView.SetTypeface(Typeface.CreateFromAsset(Context.ApplicationContext.Assets, "MontserratRegular.otf"), TypefaceStyle.Normal);
            _toolbar.ChildViewAdded -= Toolbar_ChildViewAdded;
        }
    }

标签: androidiosxamarinfonts

解决方案


您可以尝试创建样式:

<style name="Style_font">
<item name="fontFamily">@fonts/PTSerif-Bold.ttf</item>
</style>

然后在菜单中使用此样式。

<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">

在 MainActivity.cs 中:

 Android.Support.V7.Widget.ActionMenuView bottombar =FindViewById<Android.Support.V7.Widget.ActionMenuView>(Resource.Id.toolbar_bottom);
        IMenu bottomMenu = bottombar.Menu;
        MenuInflater.Inflate(Resource.Drawable.menu_bottom_view_pager,bottomMenu);

我不会测试,但你可以试试


推荐阅读