ListView Horizontal Xamarin.Forme

Est un moyen de créer ListViewhorizontal scrollXamarin.Forms image

ListView Horizontal

c'est ce que j'ai fait pour vertical

var myListView = new ListView
{
    ItemTemplate = new DataTemplate(typeof(ImageCell))
};
24
demandé sur Bas 2014-06-20 18:39:20

11 réponses

oui, vous pouvez techniquement. Réglez la Rotation à 270 (tous les éléments Visuelsont une propriété de Rotation à lier). Cependant, cela ressemble à une solution sous-optimale car il y a des espaces blancs en haut et en bas et vous devez faire glisser la vue à gauche et à droite pour voir tout pleinement.

public static readonly BindableProperty RotationProperty;
public static readonly BindableProperty RotationXProperty;
public static readonly BindableProperty RotationYProperty;

le code ci-dessus est de la classe VisualElement. Le code ci-dessous est un petit échantillon du mien.

                                              ∨∨∨                                                  
<ListView x:Name="MessagesListView" Rotation="270" ItemsSource="{Binding Items}" RowHeight="40">
  <ListView.ItemTemplate>
    <DataTemplate>
      <ViewCell>
        <ViewCell.View>
          <StackLayout>
            <!--mylayouthere-->
          </StackLayout>
        </ViewCell.View>
      </ViewCell>
    </DataTemplate>
  </ListView.ItemTemplate>
</ListView>
11
répondu Millie Smith 2014-06-20 21:43:55

comme tout le monde l'a dit, Non - il n'y en a pas une Disponible en Xamarin.Les formes.

cependant - cela n'empêche personne d'écrire son propre renderer personnalisé pour réaliser ce type de contrôle.

Stephane Delcroix a mentionné, vous pouvez créer un ScrollView et StackLayout comme un enfant pour créer le même effet.

vous devrez alors implémenter: -

*) propriété liable d'accepter le ( IEnumerable) ItemsSource propriété à créer.

*) propriété liable d'accepter le ( DataTemplate) ItemTemplate propriété à créer.

*) liaison code pour instancier les instances de ItemTemplate prendre l'élément source de données spécifique et le rendre dans le StackLayout. Vous devez considérer les articles enlevés, etc. aussi.

*) attacher les manipulateurs d'événements / gestes de robinet pour la sélection des articles.

*) implémentation d'un état sélectionné / désactivation d'autres éléments sélectionnés.

... et ainsi de suite pour obtenir une mise en œuvre complète.

le problème avec tout ce qui précède est qu'il est bon pour des listes d'articles relativement petites.

cependant, si vous êtes à la recherche d'une longue liste d'entrées, alors ci-dessus serait un peu indésirable que vous sont en train de créer tous les Vues d'avance.

Même si vous chargement retardé de ces, vous avez encore le mémoire tous les Vues à prendre en compte.

ceci mène alors à une autre implémentation possible qui traite de Virtualisé Éléments