1

Ich habe eine XAML-Seite, um eine Beschriftung und eine Listview mit Gruppierungsoption anzuzeigen. Es gibt ein Hintergrundbild, das für die gesamte Seite angezeigt wird, wie ich es erwarte. Die Seite funktioniert jedoch gut mit dem Android-Simulator (der Bildhintergrund wird auf der gesamten Seite angezeigt), aber nicht mit dem iOS-Simulator. Im iOS-Simulator wird der Bildhintergrund unter dem obersten Label-Element mit dem Text "History Facts" angezeigt, aber nicht unter dem ListView-Bereich, den ich in einem roten Rahmen markiert/gemalt habe. Der weiße Hintergrund wird stattdessen unter dem ListView gefüllt. Bitte sehen Sie sich den beigefügten Screenshot an. Bitte helfen Sie. Vielen Dank.Bildhintergrund nicht korrekt für ListView angezeigt

enter image description here

Meine XAML-Datei Markups:

<?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:local="clr-namespace:Quiz;assembly=Quiz" 
      xmlns:converter="clr-namespace:Quiz.Converters;assembly=Quiz" 
      x:Class="Quiz.QuizResultPage"> 

    <ContentPage.Padding> 
    <OnPlatform x:TypeArguments="Thickness" iOS="10, 20, 10, 0" Android="10, 0" WinPhone="10, 0" /> 
    </ContentPage.Padding> 

    <ContentPage.Resources> 
    <ResourceDictionary> 
     <converter:BoolToStringConverter x:Key="boolToString" TrueText="Yes" FalseText="No" /> 
     <converter:BoolToColorConverter x:Key="boolToColor" TrueColor="Green" FalseColor="Red"/> 

     <Style TargetType="View" x:Key="labelBase"> 
     <Setter Property="HorizontalOptions" Value="Center"></Setter> 
     <Setter Property="VerticalOptions" Value="Center"></Setter> 
     </Style> 

     <Style TargetType="Label" x:Key="labelTopTitleStyle" BasedOn="{StaticResource labelBase}"> 
     <Setter Property="FontSize" Value="Large"></Setter>   
     </Style> 

     <Style TargetType="Label" x:Key="questionStyle"> 
     <Setter Property="FontFamily" Value="Courgette-Regular"></Setter> 
     <Setter Property="TextColor" Value="White"></Setter> 
     <Setter Property="FontAttributes" Value="Bold"></Setter> 
     <Setter Property="FontSize" Value="Medium"></Setter> 
     </Style> 

     <Style TargetType="Label" x:Key="labelTimerStyle" BasedOn="{x:StaticResource labelBase}"> 
     <Setter Property="TextColor" Value="Yellow"></Setter> 
     <Setter Property="FontAttributes" Value="Bold"></Setter> 
     <Setter Property="FontSize" Value="Medium"></Setter> 
     <Setter Property="BackgroundColor" Value="Olive"></Setter> 
     </Style> 

     <Style x:Key="styleAnswer" TargetType="Label"> 
     <Setter Property="FontFamily" Value="Courgette-Regular"></Setter> 
     <Setter Property="FontSize" Value="Large"></Setter> 
     </Style> 

    </ResourceDictionary> 
    </ContentPage.Resources> 


    <RelativeLayout Padding="0"> 
    <!-- Background --> 
    <Image x:Name="imgBG" 
     Aspect="AspectFill" 
     Opacity="0.2" 
     Source="{local:ImageResource Quiz.Images.bg8.jpg}" 
     RelativeLayout.WidthConstraint= "{ConstraintExpression Type=RelativeToParent, Property=Width}" 
     RelativeLayout.HeightConstraint= "{ConstraintExpression Type=RelativeToParent, Property=Height}"> 
    </Image> 

    <StackLayout RelativeLayout.WidthConstraint= "{ConstraintExpression Type=RelativeToParent, Property=Width}" 
     RelativeLayout.HeightConstraint= "{ConstraintExpression Type=RelativeToParent, Property=Height}" 
      Orientation="Vertical"> 

     <Label Text="History Facts" Style="{Binding Source={x:StaticResource labelTopTitleStyle}}" ></Label> 

     <ListView x:Name="listViewResultQuestions" BindingContext="{Binding}" ItemsSource="{Binding Questions}" 
      IsGroupingEnabled="True" 
      GroupDisplayBinding="{Binding Text}" 
      GroupShortNameBinding="{Binding ShortName}" 
      > 
     <ListView.RowHeight> 
      <OnPlatform x:TypeArguments="x:Int32" iOS="80" Android="80" WinPhone="90" /> 
     </ListView.RowHeight> 

     <ListView.GroupHeaderTemplate> 
      <DataTemplate> 
      <ViewCell> 
       <StackLayout BindingContext="{Binding}" VerticalOptions="FillAndExpand" Padding="5" 
          BackgroundColor="{Binding Path=IsAnswerValid, Converter={x:StaticResource boolToColor}}" Orientation="Horizontal"> 
       <Label Text="{Binding DisplayIndex, StringFormat='{0}. '}" Style="{StaticResource questionStyle}" LineBreakMode="NoWrap"/> 
       <Label Text="{Binding Text}" Style="{StaticResource questionStyle}"/> 
       </StackLayout> 
      </ViewCell> 
      </DataTemplate> 
     </ListView.GroupHeaderTemplate> 
     <ListView.ItemTemplate> 
      <DataTemplate> 
      <ViewCell> 
       <StackLayout BindingContext="{Binding}" Padding="20, 5, 5, 5" Orientation="Vertical"> 
       <Label Text="{Binding Text}" Style="{StaticResource styleAnswer}"/> 
       <Label Text="{Binding IsValid, StringFormat='Answer is correct: {0}', Converter={x:StaticResource boolToString}}" Style="{StaticResource styleAnswer}"/> 
       </StackLayout> 
      </ViewCell> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
     </ListView> 

    </StackLayout> 

    </RelativeLayout> 

</ContentPage> 
+0

Haben Sie die Hintergrundfarbe des Listview versuchten Einstellung zu transparent? Ich denke, mit iOS ist es standardmäßig weiß. – BraveHeart

+0

Hallo BraveHeart. Vielen Dank für Ihre Hilfe. Ich habe diesen wichtigen Eigenschaftensatz für die ListView vermisst. Ihnen folgend, füge ich diese Eigenschaft hinzu, und das Problem wurde gelöst. Danke nochmal. Übrigens, ich weiß nicht, dass ich für das Label-Element diese Eigenschaft nicht festlegen muss. Aber für die ListView muss ich diese Eigenschaft auf "Transparent" setzen, damit iOS damit zufrieden ist. –

+0

Ich werde nur den Kommentar schreiben, den ich als Antwort gegeben habe, damit die Frage beantwortet wird :) – BraveHeart

Antwort

1

Auf iOS die Listenansicht eine weiße Hintergrundfarbe als Standard hat, also alles, was Sie tun müssen, ist den Background zu auf „Transparent“ und dies wird Ihr Problem lösen

1

Nach Braveheart, ich brauche die Background des Listview auf "Transparent" zu setzen und das Problem ist gelöst.

Verwandte Themen