2016-09-24 36 views
2

最後にモバイル用に開発して以来、しばらくしています。今、私はXamarin Formsを使って自分の知識をリフレッシュしようとしています。Xamarinフォームを使用してListViewが適切にレンダリングされない

私はXamarin Fromsプロジェクトを作成しました。しかし、私はListViewのコンテンツにデータのコレクションをレンダリングするいくつかの問題があります。私はツリーラベルの最初の要素しか見ることができません。

これは、XAMLコードです:

<?xml version="1.0" encoding="utf-8" ?> 
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
      xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
      x:Class="ExampleBooks.View.BooksView" 
      Title="Books"> 

    <ScrollView> 
    <StackLayout> 
     <ListView x:Name="ListViewBooks" 
       ItemsSource="{Binding Books}"> 
     <ListView.ItemTemplate> 
      <DataTemplate> 
      <ViewCell> 
       <ViewCell.View> 
       <StackLayout Padding="10" Orientation="Vertical"> 
        <Label Text="{Binding Title}" FontSize="Large" VerticalOptions="Center"></Label> 
        <Label Text="{Binding Author}" FontSize="Small"></Label> 
        <Label Text="{Binding Description}" FontSize="14"></Label> 
       </StackLayout> 
       </ViewCell.View> 
      </ViewCell> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
     </ListView> 
    </StackLayout> 
    </ScrollView> 
</ContentPage> 

そして、これは上記のコードを使用してデータのレンダリング方法のスクリーンショットです:ラベル、あなたが見ることができるよう

Screenshot ListView

Autorおよび説明は表示されません。私が知る限りでは、ListView内のネストされたStackLayout内のすべてのツリー要素が表示されるはずです。しかし、私は拳だけ見ることができます。

私はPadding and Spacing属性を試してみました。しかし、誰も助けてくれないようです。

ここに何か不足していますか?どんな助けや手がかりも助けます。

P.D.私はAndroidエミュレータを使用しています。しかし、Windows Phoneエミュレータでも同じことが起こります。

おかげ

+0

あなたは著者と説明をバインドし、静的なテキストにそれらを設定しない場合、それは動作しますか?ところで、ScrollViewにListViewを置くべきではありませんが、これはあなたの問題の原因ではありませんが、残念ながら悪い考えです。 –

+0

また、最初のラベルからVerticalOptions = Centerを削除してみてください。 –

答えて

2

は、あなたのListView年代RowHeightを増やし:

<ListView x:Name="ListViewBooks" 
      ItemsSource="{Binding Books}" 
      RowHeight="100"> 

enter image description here

+0

ありがとうございました。そのプロパティを追加することは私のために働いた。 – MikePR

+0

あなたは大歓迎です。 – jsanalytics

+2

@MikePR私はあなたの 'ListView.RowHight'に静的な値を入れないことをお勧めします。なぜなら、テキストサイズと位置は、デバイスによって制御される異なるデバイス、方向、およびテキストサイズの設定によって異なる可能性があるからです。 'ListView.HasUnevenRows'を' true'に設定する方が良いでしょう。 – hvaughan3

関連する問題