2017-04-21 65 views
2

我想設置頁面圖標。下面是PCL的App類。如何在Xamarin Forms中設置頁面圖標?

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屬性爲App類的PCL。

我將DroidNavigationRenderer類創建爲Android項目。

[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始終返回爲空。 我做錯了什麼,以及如何解決它?

回答

0

在你的ContentPage,你有Icon財產。

您可以設置它這樣

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

它不工作。我簡化了我的'App'類到'this.MainPage = new ContentPage {Icon = Device.OnPlatform(「Menu」,「icon.png」,「Assets/Icons/reload.png」),BackgroundImage =「lightWood.png」 };'也是行不通的。我不知道是什麼問題。也許我的自定義圖標影響它。它是'png'圖片(52x72px)。它位於'MyProject/Resources/drawable/icon.png'中,但會顯示背景圖像。 –

+0

我想你需要有NavigationPage才能顯示圖標。 – hamalaiv

+0

嗨@JosephKatzman:你能做到嗎? 我搜索的方式只能在一個頁面上用SetTitleIcon()顯示一個標誌。 這在iOS上正常工作,但在Android上:徽標顯示在每個頁面上... –

相關問題