Xamarin.forms 如何更改Navigastion';Xamarin表单中的页面箭头?
我正在使用xamarin表单(multiplatform)创建一个应用程序,我正在使用一个导航页面,但我想更改箭头(),当您使用xamarin表单时,建议使用公共组件,并尽量少使用自定义渲染器 现在,根据您的需求,您需要创建自定义导航栏 这就是你可以做到的Xamarin.forms 如何更改Navigastion';Xamarin表单中的页面箭头?,xamarin.forms,cross-platform,Xamarin.forms,Cross Platform,我正在使用xamarin表单(multiplatform)创建一个应用程序,我正在使用一个导航页面,但我想更改箭头(),当您使用xamarin表单时,建议使用公共组件,并尽量少使用自定义渲染器 现在,根据您的需求,您需要创建自定义导航栏 这就是你可以做到的 创建基本内容页 在您的基本页面内创建一个控件模板,您可以按照以下步骤操作 在控件模板内部,使用网格视图将标签与文本绑定(背面)一起放置,也可以将标签放置在中间以再次显示页面标题。您可以使用模板绑定,当您浏览链接时,您会知道该模板绑定 现在用b
另外,要动态处理后退按钮,如果导航斯塔克的0 u可以显示汉堡包图标,或者如果超过0 u可以使用IsVisible True/False显示标签,则可以从导航斯塔克中检查计数。您可以使用自定义渲染器删除导航图标并将其设置为文本。但是,在执行此操作时,需要捕获文本的点击并模拟背部事件 创建接口:
public class CustomNavigationPage : NavigationPage
{
public CustomNavigationPage(Page startupPage) : base(startupPage)
{
}
}
安卓系统的实现:
[assembly: ExportRenderer(typeof(CustomNavigationPage),
typeof(NavigationPageRenderer_Droid))]
namespace NavigationPageDemo.Droid
{
public class NavigationPageRenderer_Droid : NavigationPageRenderer
{
public Android.Support.V7.Widget.Toolbar toolbar;
public Activity context;
public NavigationPageRenderer_Droid(Context context) : base(context)
{
}
protected override Task<bool> OnPushAsync(Page view, bool animated)
{
var retVal = base.OnPushAsync(view, animated);
context = (Activity)Forms.Context;
toolbar = context.FindViewById<Android.Support.V7.Widget.Toolbar>(Droid.Resource.Id.toolbar);
if (toolbar != null)
{
//if (toolbar.NavigationIcon != null)
//{
//toolbar.NavigationIcon = Android.Support.V7.Content.Res.AppCompatResources.GetDrawable(context, Resource.Drawable.back);
//toolbar.NavigationIcon = null;
toolbar.NavigationIcon = null;
toolbar.Title = "back";
toolbar.SetOnClickListener(new OnClick());
//}
}
return retVal;
}
protected override Task<bool> OnPopViewAsync(Page page, bool animated)
{
return base.OnPopViewAsync(page, animated);
}
}
public class OnClick : Java.Lang.Object, IOnClickListener
{
void IOnClickListener.OnClick(Android.Views.View v)
{
App.Current.MainPage.Navigation.PopAsync();
}
}
[程序集:ExportRenderer(typeof(CustomNavigationPage)),
类型(NavigationPageRenderer\u Droid))]
命名空间NavigationPageDemo.Droid
{
公共类NavigationPageRenderer\u Droid:NavigationPageRenderer
{
公共Android.Support.V7.Widget.Toolbar工具栏;
公共活动语境;
公共导航PageRenderer\u Droid(上下文):基础(上下文)
{
}
受保护的覆盖任务OnPushAsync(页面视图,布尔动画)
{
var retVal=base.OnPushAsync(视图,动画);
context=(活动)Forms.context;
toolbar=context.findviewbyd看看这里:太好了!!!谢谢你,它真的帮了大忙