2016-07-04 12 views
0
に正しく表示されない

私は、次のXAMLはXamarinリストビューは、iOSの

 <StackLayout Orientation="Vertical" VerticalOptions="EndAndExpand" HorizontalOptions="FillAndExpand" Margin="0,0,0,0"> 
     <Label Text="Menu" /> 

     <ListView x:Name="lvMenu" ItemSelected="lvMenu_ItemSelected"> 
      <ListView.ItemTemplate> 
      <DataTemplate> 
       <ImageCell ImageSource="{Binding ImageSource}" Text="{Binding TitleText}" /> 
      </DataTemplate> 
      </ListView.ItemTemplate> 
     </ListView> 
     </StackLayout> 

次のC#は

private void PopulateMenu() 
    { 
     var menu = new List<SettingItem>() 
     { 
      new SettingItem() { ImageSource="icon.png", TitleText="Show All Jobs", TargetPageType = typeof(JobListPage) }, 
      new SettingItem() { ImageSource="opportunities.png", TitleText="Sync Tasks", TargetPageType = typeof(SyncPage) }, 
      new SettingItem() { ImageSource="leads.png", TitleText="Advanced Settings", TargetPageType = typeof(SettingsPage) }, 
      new SettingItem() { ImageSource="contacts.png", TitleText="About ", TargetPageType = typeof(AboutPage) }, 
     }; 
     lvMenu.ItemsSource = menu; 
    } 

そのすべての良い、それを移入してきたが、それは表示されたら、私は

Menu 
    Show All Jobs 
    Sync Tasks 
    Advanced Settings 
を取得しますiOSエミュレータの

と7個の空白行

+0

これはiOSの上ですか? – user3185569

+0

はい、更新された質問 –

答えて

0

ListViewのiOSのデフォルトの動作は、空の行を追加することです。

これを克服するために、あなたがのStackPanelであなたのListViewをラップする必要があり、

またはレンダリングカスタムを作成します。

protected override void OnElementChanged(ElementChangedEventArgs<ListView> e) 
{ 
    base.OnElementChanged(e); 

    if (this.Control == null) return; 

    this.Control.TableFooterView = new UIView(); 
} 

出典:Xamarin

+0

このコードを追加するにはどうすればいいですか、どこに追加しますか? –

+0

@WelshKingここでは、ステップバイステップガイドです:https://developer.xamarin.com/guides/xamarin-forms/custom-renderer/listview/ – user3185569

関連する問題