2
페이지 아이콘을 설정하려고합니다. 아래에 App
클래스의 PCL이 있습니다.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
클래스를 만들었습니다.
[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로 반환됩니다. 내가 뭘 잘못하고 그것을 고치는 법?
을 설정할 수 있습니다. 나는'App.MainPage = new ContentPage {Icon = Device.OnPlatform ("Menu", "icon.png", "Assets/Icons/reload.png"), BackgroundImage = "lightWood.png" };'또한 작동하지 않습니다. 나는 그 문제가 뭔지 모른다. 어쩌면 내 사용자 정의 아이콘이 그것에 영향을 미칠 수 있습니다. 'png' 이미지 (52x72 픽셀)입니다. 그것은 'MyProject/Resources/drawable/icon.png'에 위치해 있습니다.하지만 배경 이미지가 표시됩니다. –
아이콘을 표시하려면 NavigationPage가 있어야한다고 생각합니다. – hamalaiv
안녕하세요 @JosephKatzman : 당신이 관리 할 수 있니? 한 페이지에만 SetTitleIcon()으로 로고를 표시하는 방법을 검색합니다. iOS에서는 잘 작동하지만 Android에서는 로고가 각 페이지에 표시됩니다 ... –