【问题标题】:How to hide back button in navigation bar xamarin forms如何在导航栏xamarin表单中隐藏后退按钮
【发布时间】:2019-12-24 03:34:29
【问题描述】:

目前我面临在 xamarin 表单中隐藏导航栏中的后退按钮的问题。

我需要在 Android 和 iOS 中执行此操作。

我的视图如下图。

我需要为此编写渲染器吗?

任何帮助都非常有用。

【问题讨论】:

    标签: c# xamarin.forms


    【解决方案1】:

    在 ContentPage 中设置 NavigationPage.HasBackButton 属性来隐藏返回按钮。

    NavigationPage.HasBackButton="False"
    

    【讨论】:

    • 这太酷了你知道让页面透明的方法吗,在上面的图片中你可以看到后面有一个叠加层。我想看看它背后的背景页面吗?
    • 页面透明是什么意思?你的意思是你要透明的导航栏?
    • 看不到上面提供的图像,背景视图(灰颜色)在另一个视图的顶部,我需要通过第二个视图显示第一个视图。
    • 也可以从后面的代码中设置这个,使用 NavigationPage.SetHasBackButton(this, false);
    【解决方案2】:

    对于我来说,我必须创建自定义渲染器,因为 NavigationPage.HasBackButton="False" 不起作用。 Xamarin.Forms > 5 第一个 ShellRenderer

    public class DriodAppShellRenderer : ShellRenderer
    {
        public DriodAppShellRenderer(Context context) : base(context)
        {
        }
    
        protected override IShellToolbarAppearanceTracker CreateToolbarAppearanceTracker()
        {
            return new MyShellToolbarAppearanceTracker(this);
        }       
    }
    

    然后是 MyShellToolbarAppearanceTracker

    public class MyShellToolbarAppearanceTracker : ShellToolbarAppearanceTracker
    {
        private readonly IShellContext _context;
    
        public MyShellToolbarAppearanceTracker(IShellContext context) : base(context)
        {
            _context = context;
        }
    
        public override void ResetAppearance(Toolbar toolbar, IShellToolbarTracker toolbarTracker)
        {
            if (toolbarTracker.CanNavigateBack)
            {
                
                toolbar.SetNavigationIcon(Resource.Drawable.ic_back);
            }
        }
    
        public override void SetAppearance(Toolbar toolbar, IShellToolbarTracker toolbarTracker, ShellAppearance appearance)
        {
           
            if (toolbarTracker.CanNavigateBack)
            {
                toolbar.NavigationIcon = null;
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-11-11
      • 2012-07-03
      • 1970-01-01
      • 2012-04-21
      • 1970-01-01
      • 2013-01-13
      • 2015-10-20
      • 1970-01-01
      • 2020-11-13
      相关资源
      最近更新 更多