Domanda

Sto usando https://github.com/etsy/androidstaggerdgrid/ nel mio progetto.Tutto funziona bene, tranne non riesco a farla scorrere in posizione / articolo specifico a volontà.

Cosa ho provato finora (tutto ciò a cui potevo pensare, racchiuso in un unico pezzo di codice da guardare):

final StaggeredGridView gv = (StaggeredGridView) ma.findViewById(R.id.photosList);
gv.setChoiceMode(StaggeredGridView.CHOICE_MODE_SINGLE);
gv.setFocusable(true);
gv.clearFocus();
gv.post( new Runnable() {
    @Override
    public void run() {

        // #1 approach
        gv.requestFocusFromTouch();
        gv.smoothScrollToPosition(index);

        // #2 approach
        gv.setSelection(index);

        View v = gv.getChildAt(index);
        if (v != null) {
            // #3 approach
            v.requestFocus();
        }
        //v.requestFocusFromTouch();
        Utils.log("scroll to " + index);
        gv.requestLayout();
    }
});
.

Nulla sembra funzionare e sto iniziando a pensare che questa visione abbia qualche tipo di bug relativo al mio problema.C'è qualcuno che può aiutarmi in materia?

È stato utile?

Soluzione

Ho scoperto che non ero in grado di scorrere in una posizione specifica, tuttavia, ho scoperto che sono stato in grado di ripristinare lo stato del GridView.Nella mia applicazione ho dovuto implementare un meccanismo di pila posteriore personalizzato e puoi passare lo stato da:

Parcelable state = mgridView.onSaveInstanceState();
.

Lo stato è un pacelable, quindi sono stato in grado di pulire con un intento, quindi recuperarlo e ripristinare lo stato secondo necessità, come

if(state != null) {
    mgridView.onRestoreInstanceState(state);
}
.

Dopo aver ripristinato lo stato, ripristina esattamente la posizione precedente nella griglia.

Spero che questo aiuti a chiunque altro affrontasse questo problema!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top