Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin:在Android导航上覆盖PushAsync_Xamarin_Navigation_Custom Renderer - Fatal编程技术网

Xamarin:在Android导航上覆盖PushAsync

Xamarin:在Android导航上覆盖PushAsync,xamarin,navigation,custom-renderer,Xamarin,Navigation,Custom Renderer,我在我的应用程序中创建了一个自定义导航渲染,OnPushAsync和PopViewController被覆盖,并且可以在iOS上工作 public class NavRenderer : NavigationRenderer { protected override async Task<bool> OnPushAsync(Page page, bool animated) { ... }

我在我的应用程序中创建了一个自定义导航渲染,OnPushAsync和PopViewController被覆盖,并且可以在iOS上工作

public class NavRenderer : NavigationRenderer
            {
                protected override async Task<bool> OnPushAsync(Page page, bool animated)
                { ...
    }


    public override UIViewController PopViewController(bool animated)
    {
        ....
        return base.PopViewController(false); 
    }
公共类NavRenderer:NavigationRenderer
{
受保护的覆盖异步任务OnPushAsync(第页,bool动画)
{ ...
}
公共覆盖UIViewController PopViewController(布尔动画)
{
....
返回base.PopViewController(false);
}
尝试在Android上做同样的(?)时,如何覆盖OnPushAsync和PopViewController


Tx

您可以
覆盖android渲染器中的这些方法,以推送和弹出
页面

public class NavRenderer : NavigationRenderer
{
    public NavRenderer(Context context) : base(context)
    {

    }
    protected override Task<bool> OnPushAsync(Page view, bool animated)
    {
        return base.OnPushAsync(view, animated);
    }
    protected override Task<bool> OnPopViewAsync(Page page, bool animated)
    {
        return base.OnPopViewAsync(page, animated);
    }
}

Tx.你知道NavigationBar.BarTintColor的等价物吗(我在iOS导航渲染中使用它来更改导航栏的颜色)。你可以尝试类似这样的方法((NavigationPage)Xamarin.Forms.Application.Current.MainPage)。BarBackgroundColor=color.Blue;
public class NavRenderer : NavigationRenderer
{
    public override void PushViewController(UIViewController viewController, bool animated)
    {
        base.PushViewController(viewController, animated);
    }

    public override UIViewController PopViewController(bool animated)
    {
        return base.PopViewController(animated);    
    }
}