android 的 NavigationPage 呈现器。 Xamarin 表格
NavigationPage rendere for android. Xamarin Forms
我正在尝试从自定义渲染器访问操作栏(我知道我可以使用 toolbar.xml 但它不适合我的情况)。 这是我的代码
[assembly: ExportRenderer(typeof(NavigationPage), typeof(NoviNavigationPageRenderer))]
namespace NoviMobileTest.Droid.Renderers
{
public class NoviNavigationPageRenderer : PageRenderer
{
protected override void OnLayout(bool changed, int l, int t, int r, int b)
{
base.OnLayout(changed, l, t, r, b);
var actionBar = ((Activity)Context).ActionBar;
actionBar.SetBackgroundDrawable(Resources.GetDrawable(Resource.Drawable.YourImageInDrawable));
}
}
}
变量 actionbar
始终为空。我也尝试扩展 NavigationRenderer 但我得到 class 转换异常。我见过很多人遇到同样的问题,但令人惊讶的是没有任何例子可供参考。我应该如何获取工具栏的实例?
注意:
我的 MainActivity 扩展 FormsAppCompatActivity
提前致谢
尝试在您的 Android 项目中安装 CurrentActivity Plugin,然后像这样:
using Plugin.CurrentActivity;
...
private static Android.Support.V7.Widget.Toolbar GetToolbar() => (CrossCurrentActivity.Current?.Activity as MainActivity)?.FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
最后:
protected override void OnLayout(bool changed, int l, int t, int r, int b)
{
base.OnLayout(changed, l, t, r, b);
var actionBar = GetToolbar();
actionBar.SetBackgroundDrawable(Resources.GetDrawable(Resource.Drawable.YourImageInDrawable));
}
有关此的更多信息,请参阅:IconNavigationPageRenderer.cs
我正在尝试从自定义渲染器访问操作栏(我知道我可以使用 toolbar.xml 但它不适合我的情况)。 这是我的代码
[assembly: ExportRenderer(typeof(NavigationPage), typeof(NoviNavigationPageRenderer))]
namespace NoviMobileTest.Droid.Renderers
{
public class NoviNavigationPageRenderer : PageRenderer
{
protected override void OnLayout(bool changed, int l, int t, int r, int b)
{
base.OnLayout(changed, l, t, r, b);
var actionBar = ((Activity)Context).ActionBar;
actionBar.SetBackgroundDrawable(Resources.GetDrawable(Resource.Drawable.YourImageInDrawable));
}
}
}
变量 actionbar
始终为空。我也尝试扩展 NavigationRenderer 但我得到 class 转换异常。我见过很多人遇到同样的问题,但令人惊讶的是没有任何例子可供参考。我应该如何获取工具栏的实例?
注意:
我的 MainActivity 扩展 FormsAppCompatActivity
提前致谢
尝试在您的 Android 项目中安装 CurrentActivity Plugin,然后像这样:
using Plugin.CurrentActivity;
...
private static Android.Support.V7.Widget.Toolbar GetToolbar() => (CrossCurrentActivity.Current?.Activity as MainActivity)?.FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
最后:
protected override void OnLayout(bool changed, int l, int t, int r, int b)
{
base.OnLayout(changed, l, t, r, b);
var actionBar = GetToolbar();
actionBar.SetBackgroundDrawable(Resources.GetDrawable(Resource.Drawable.YourImageInDrawable));
}
有关此的更多信息,请参阅:IconNavigationPageRenderer.cs