J'utilise un GridView pour un plateau de jeu. Récemment, certains utilisateurs ont eu des problèmes avec le défilement vertical de la carte (sur les téléphones Samsung Galaxy/Vibrant exécutant 2.2) - Ce bug ne se produit pas sur mon Nexus One.
Un utilisateur a produit captures d'écran du problème.
Comment pourrais-je verrouiller le GridView en place? Existe-t-il un moyen de désactiver le défilement?
Essayez d'ajouter ou de remplacer setOnTouchListener
pour GridView
, puis dans la méthode onTouch
vous pouvez utiliser un code comme celui-ci pour rendre gridView
non défilable
Java
gridView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return event.getAction() == MotionEvent.ACTION_MOVE;
}
});
Kotlin
gridView.setOnTouchListener { v, event ->
event.action == MotionEvent.ACTION_MOVE
}
Vous pouvez essayer setEnabled (false), bien que cela puisse avoir d'autres effets secondaires. GridView n'est vraiment pas destiné à être utilisé comme vous l'utilisez. Vous devez créer votre propre vue ou disposition personnalisée. Vous pouvez également utiliser un TableLayout.