android - 如何在 Xamarin Forms 中设置页面图标?

标签 android xamarin.forms

我正在尝试设置页面图标。下面是PCL的App类。

public App()
{
    CustomMainPage mainPage = new CustomMainPage(); 
    NavigationPage rootPage = new NavigationPage(mainPage);
    this.MainPage = rootPage;
}

我想做什么?

NavigationPage.SetTitleIcon(mainPage, "icon.png");

第二种方法。

NavigationPage.SetTitleIcon(this, "icon.png");

第三种方法。

NavigationPage.SetTitleIcon(rootPage, "icon.png");

文件 icon.png 位于 Resources/drawable 中。

最后我决定在 Xamarin Forms 中为 NavigationPage 实现我的自定义渲染器。 NavigationPage 设置为 MainPage 属性到 PCL 的 App 类中。

我在 Android 项目中创建了 DroidNavigationRenderer 类。

 [assembly: ExportRenderer(typeof(NavigationPage), typeof(DroidNavigationPageRenderer))]
namespace App1.Droid.DroidRenderers
{
    public class DroidNavigationPageRenderer : NavigationPageRenderer
    {
        protected override void OnElementChanged(ElementChangedEventArgs<NavigationPage> e)
        {
            base.OnElementChanged(e);

            var actionBar = ((Activity)Context).ActionBar;
            actionBar.SetIcon(Resource.Drawable.icon);
        }
    }
}

但是 actionBar 总是返回 null。 我做错了什么以及如何解决?

最佳答案

在您的 ContentPage 中,您拥有 Icon 属性。

可以这样设置

Icon = Device.OnPlatform("Menu", "ic_fa_bars.png", "Assets/Icons/reload.png");

关于android - 如何在 Xamarin Forms 中设置页面图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43540540/

相关文章:

c# - Xamarin Forms 拉取异步表。CreateQuery() 默认添加了 OFFSET

listview - FlowListView 无法通过简单示例正常工作

android - 无法解析 : com. google.android.gms :play-services-appindexing:11. 0.0

android - 使用 fileprovider 加载文本文件时出现 ERR_UNKNOWN_URL_SCHEME

xamarin - "XamarinDownloadArchives"任务无法使用其输入参数初始化

android - 如何在 Android Xamarin.Forms 中获取附近的 WiFi 网络列表?

android - React Native v Xamarin Forms - 选择跨平台应用程序环境

android - 他们怎么称呼android图形服务器?

java - 如何在android中获取位置?

java - 在 android 中通过来自 gmaps 的消息获取共享的位置坐标