首页 > 解决方案 > Large title for an View

问题描述

I have xamarin. form app of few views, one among those views has a title of 42 characters. Is there any way to get that displayed on view without missing any character. When I try this renderer I am getting font size applicable for every view but I need to display that for the only specific view which has a title of 42 characters.

    [assembly: ExportRenderer(typeof(CustomNavigationPageControl), typeof(CustomNavigationPageRenderer))]

namespace ALCInspection.Droid.Dependecies
{
    public class CustomNavigationPageRenderer : NavigationPageRenderer
    {
        public CustomNavigationPageRenderer(Context context) : base(context)
        {
        }


        private Android.Support.V7.Widget.Toolbar _toolbar;

        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 = child as Android.Support.V7.Widget.Toolbar;
                toolbar.ChildViewAdded += Toolbar_ChildViewAdded;
                var a = toolbar.ChildCount;

            }

        }

        void Toolbar_ChildViewAdded(object sender, ChildViewAddedEventArgs e)
        {
            var view = e.Child.GetType();
            if (e.Child.GetType() == typeof(Android.Support.V7.Widget.AppCompatTextView))
            {
                var textView = e.Child as Android.Support.V7.Widget.AppCompatTextView;
                textView.TextSize = 16;

                toolbar.ChildViewAdded -= Toolbar_ChildViewAdded;

            }
        }
    }
}

public class CustomNavigationPageControl : NavigationPage
{
    public CustomNavigationPageControl(Page root) : base(root)
    {
    } 
}

 public static async Task NavigateToAsyncToSmallTitleView(Page firstPageToNavigate, INavigation navigation = null)
    {
        try
        {
            if (navigation == null)
            {                  
                navigation = ((CustomNavigationPageControl)Application.Current.MainPage).Navigation;
            }
            await navigation.PushAsync(firstPageToNavigate, false);  
        }
        catch(Exception exception)//exception specified cast is not valid
        {

        }
    }

and i am calling it as

 await Helper.NavigateToAsyncWithSmallTitle(new OtherViwq());

I come with above code on searching but it is throwing specified cast exception.

标签: androidxamarin.formsnavigation

解决方案


According to this question, you need to use a custom renderer. Have a look also at here, duplicate question here and here. Hope it helps..


推荐阅读