Je rencontre un problème lorsque j'ai un listview qui contient un groupe de spinner. Si je sélectionne une option pour le premier spinner puis que je défile vers le bas, je vois un spinner que je n'ai même pas touché a la même valeur que le premier spinner que je viens de définir. Je suppose que c'est un problème avec la vue Spinner recyclé et mal utilisé ci-dessous. Est-ce que quelqu'un d'autre a rencontré ce problème avec des fileurs? Je pense que nous devons mettre en œuvre une solution similaire à this dans MvxAdapter?Problèmes avec MvxSpinner dans ListView
0
A
Répondre
0
J'ai implémenté mes propres MyMvxAdapter et MyMvxListView pour gérer cela. La seule chose que j'ai changé dans MyMvxListView était de l'utiliser comme adaptateur MyMvxAdapter au lieu de MvxAdapter normal. J'ai alors changé le GetBindableView en MyMvxAdapter pour ressembler à ceci:
protected virtual View GetBindableView(View convertView, object dataContext, int templateId)
{
if (templateId == 0)
{
// no template seen - so use a standard string view from Android and use ToString()
return GetSimpleView(convertView, dataContext);
}
// we have a templateid so lets use bind and inflate on it :)
var viewToUse = convertView as IMvxListItemView;
if (viewToUse != null)
{
if (viewToUse.TemplateId != templateId)
{
viewToUse = null;
}
}
if (viewToUse == null)
{
viewToUse = CreateBindableView(dataContext, templateId);
}
else
{
var spinner = (MvxSpinner)convertView.FindViewById(Resource.Id.taskFieldSpinner);
if (spinner != null)
{
spinner.SetSelection(((WrappedEmployeeTaskField)dataContext).TheField.SpinnerSelection);
}
BindBindableView(dataContext, viewToUse);
}
return viewToUse as View;
}
Vous remarquerez la seule différence est que je avais besoin d'accéder directement à ma ressource spinner pour régler correctement si viewToUse est pas nul. Puis le dernier de la "sauce magique" consistait à garder trace de la valeur sélectionnée du spinner sur mon modèle de données, dans ce cas comme la propriété "SpinnerSelection" sur mon modèle qui est remplie à chaque fois que la valeur est sélectionnée.
Questions connexes
- 1. Problèmes avec scroll dans listview
- 2. animateLayoutChanges problèmes avec ListView
- 3. Problèmes Android avec ListView
- 4. Problèmes avec ListView
- 5. Comment définir l'élément sélectionné dans MvxSpinner
- 6. Problèmes avec les couleurs ListView
- 7. Android, des problèmes avec listview personnalisé
- 8. Problèmes avec ListView à l'intérieur d'un PopupWindow
- 9. Android Studio: problèmes ArrayAdapter avec listview
- 10. problèmes rafraîchissant android listview
- 11. Problèmes avec OnItemClick sur un ListView personnalisé
- 12. ASP Listview, ItemPlaceHolder problèmes
- 13. Problèmes ListView VB.NET
- 14. listview addFooterView problèmes
- 15. Problèmes d'espacement dans un contrôle ListView
- 16. Problèmes de mise en page dans Listview
- 17. Programma ajouter un MvxSpinner en utilisant IAttributes du parent
- 18. ListView avec des problèmes d'arrière-plan d'article neuf-patch
- 19. Databound WPF TabControl avec ListView provoque des problèmes de défilement
- 20. Problèmes de mouvement avec un ViewFlipper contenant un ListView
- 21. Problèmes inhabituels de ListView et de Spinner avec SQLDatabase
- 22. problèmes de mise en page de base avec WPF ListView
- 23. Windows 8 Javascript: Listview invoquer des problèmes
- 24. Problèmes de mise en page WinForm ListView
- 25. Problèmes de stockage des données listview
- 26. problèmes avec onItemClick listener
- 27. Android glisser et déposer des problèmes ListView
- 28. .NET Problèmes d'image sur ListView dans WinForms App (affichage incorrect)
- 29. ListView avec d'autres éléments
- 30. Problèmes avec onItemClick()
En regardant le MvxAdapter dans le github MvvmCross.Binding.Droid.View.MvxAdapter, je vois que GetBindableView essaye de le gérer pour des situations normales. Je pense que [this] (http://stackoverflow.com/questions/14258866/spinner-reset-value-when-scrolling-in-a-custom-listview-with-arrayadapter) est le problème. – PkL728