Modification du nombre de colonnes dans le quadrillage RecyclerView

Je suis en train de changer le nombre de colonnes qui apparaissent dans le recycleur vue (présentation de la grille) basé sur la taille de l'écran. Cependant, je ne pouvais pas trouver un bon moyen de l'atteindre. Pour le moment je suis en utilisant treeViewObserver pour modifier le nombre de colonnes en fonction du changement de la taille de l'écran (au moment de l'orientation). Donc, si l'application s'ouvre en mode portrait, le nombre de colonnes (sur le téléphone), il décide de être un, qui à l'air bon, mais cette méthode ne fonctionne pas lorsque l'application s'ouvre directement en mode paysage où un seul s'est étendu hors de la carte dans la grille est affichée sur l'écran.

Ici recList est RecyclerView & glm est GridLayoutManager utilisé dans RecyclerView

    viewWidth = recList.getMeasuredWidth();

    cardViewWidthZZ = recList.getChildAt(0).getMeasuredWidth();

    if (oldWidth == 0) {
        oldWidth = cardViewWidthZZ;
    }

    if (oldWidth <= 0)
        return;

    int newSpanCount = (int) Math.floor(viewWidth / (oldWidth / 1.3f));
    if (newSpanCount <= 0)
        newSpanCount = 1;
    glm.setSpanCount(newSpanCount);
    glm.requestLayout();

En Ce Qui Concerne Meilleur

source d'informationauteur Umer Farooq