2017-04-05 51 views
1

XamarinにToolbarItemのアイコンをロードしようとすると問題が発生します。表示されません。ツールバーは確かに存在します。 Clickメソッドを処理しても機能しますが、アイコンは表示されません。 「.ico」ファイルは、Androidプロジェクトのすべての「ドロウアブル」フォルダに存在します。それは私が別のソリューションで使用するのと同じ.icoファイルであり、そこにはToolbarItemのアイコンとしてうまく動作しますが、ここでは機能しません。私は埋め込み画像を読み込もうとしましたが、どちらもうまくいきません。 Textプロパティを設定すると、正しく表示されます。私はMasterDetailPageであるHomePageを持っており、このページの詳細はRootPageです。 RootPageにはToolbarItemがあります。Xamarin ToolbarItemのアイコンがAndroidに表示されない

ホームページ:

<?xml version="1.0" encoding="utf-8" ?> 
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms" 
      xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
      xmlns:views="clr-namespace:ITEC.Views;assembly=ITEC" 
      x:Class="ITEC.Views.HomePage" 
      IsPresented="True"> 

    <MasterDetailPage.Master> 
     <ContentPage Title="Home" Padding="0,20,0,0"> 
      <StackLayout> 
       <ListView x:Name="listView"> 
        <ListView.ItemTemplate> 
         <DataTemplate> 
          <TextCell Text="{Binding Title}"/> 
         </DataTemplate> 
        </ListView.ItemTemplate> 
       </ListView> 
      </StackLayout> 
     </ContentPage> 
    </MasterDetailPage.Master> 
    <MasterDetailPage.Detail> 
     <views:RootPage/> 
    </MasterDetailPage.Detail> 
</MasterDetailPage> 

コードの背後にある:

using ITEC.Services; 
using Xamarin.Forms; 
using Xamarin.Forms.Xaml; 

namespace ITEC.Views 
{ 
    [XamlCompilation(XamlCompilationOptions.Compile)] 
    public partial class HomePage : MasterDetailPage 
    { 
     private OptionService _optionService; 
     public HomePage() 
     { 
      InitializeComponent(); 
      Detail=new NavigationPage(new RootPage()); 
      _optionService = new OptionService(); 
      listView.ItemsSource = _optionService.GetOptions(); 
     } 
    } 
} 

RootPage:

<?xml version="1.0" encoding="utf-8" ?> 
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
      xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
      xmlns:embedded="clr-namespace:ITEC.MarkupExtensions" 
      x:Class="ITEC.Views.RootPage"> 
    <ContentPage.ToolbarItems> 
     <ToolbarItem Icon="settings.ico" Clicked="MenuItem_OnClicked"></ToolbarItem> 
    </ContentPage.ToolbarItems> 
    <StackLayout> 
     <Label>Hello world</Label> 
    </StackLayout> 
</ContentPage> 

コードの背後にある:

using System; 
using Xamarin.Forms; 
using Xamarin.Forms.Xaml; 

namespace ITEC.Views 
{ 
    [XamlCompilation(XamlCompilationOptions.Compile)] 
    public partial class RootPage : ContentPage 
    { 
     public RootPage() 
     { 
      InitializeComponent(); 
     } 

     private void MenuItem_OnClicked(object sender, EventArgs e) 
     { 
      DisplayAlert("Hello", "OK", "No"); 
     } 
    } 
} 
ここに私のXAMLコードと後ろのコードがあります
+1

私は基本的なデモを行いましたが、問題は再現されませんでした。 '.ico'のプロパティを確認して、あなたのプロジェクトに' AndroidResource'として追加されているか確認してください。問題が解決しない場合は、この問題を再現できる基本的なデモを教えてください。 –

+0

@ ElvisXia-MSFTこれは実際の問題だったようです。ビルドアクションをAndroidResourceに設定するのは難しかった。別のプロジェクトのファイルをコピーして貼り付けたときに、そのファイルに適切なビルドアクションがあるかどうかはわかりませんでした。しかし、埋め込みリソースからアイコンを使用する方法はありませんか? 1つのファイルを6つの異なるドロウアブルフォルダに移動するのではなく、その方がずっときれいになります – Stevie

答えて

0

お試しくださいpngファイルのアイコンです。私はそれが仕事かもしれないと思う。

+0

どのような種類の画像でも試しました。これは問題ではないようです – Stevie

関連する問題