J'ai un GridView dans un NestedScrollView. J'ai utilisé le code ci-dessous pour redimensionner le GridView chaque fois que le contenu du GridView est modifié. Cela fonctionne bien, mais le NestedScrollView défile jusqu'en bas lorsque je glisse du fragment 3 de l'application vers le fragment 2 (où réside le NestedScrollView). Cela ne se produit pas lors du passage du fragment 1 au fragment 2, bizarrement. Cela ne se produit pas non plus directement après le redimensionnement de GridView.
Comment puis-je réprimer le NestedScrollView de défiler vers le bas?
private static void resizeGridView(GridView gridView, int items, int columns) {
ViewGroup.LayoutParams params = gridView.getLayoutParams();
params.height = singleGridHeight * items;
gridView.setLayoutParams(params);
gridView.requestLayout();
}
Les méthodes système suivantes sont appelées lors du passage d'un fragment à l'autre:
Ajouter Android:descendantFocusability="blocksDescendants"
à la disposition enfant dans NestedScrollView
Si j'ajoute nestedScrollView.scrollTo(0, 0);
à la fin de la méthode onLayoutChanged()
du GridView, le problème est résolu. Cependant, il serait plus logique d'empêcher le nestedScrollView de défiler automatiquement en premier lieu.
Des idées?