문제

저는 https://github.com/etsy/androidstaggeredgrid/ ...에모든 것이 잘 작동합니다.

특정 위치 / 항목으로 스크롤 할 수 없습니다.

지금까지 시도한 것 (내가 생각할 수있는 모든 것, 당신이 보는 한 조각으로 둘러싸인 모든 것) :

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();
    }
});
.

아무 것도 일하지 않는 것 같아요.이 견해가 내 문제와 관련된 일종의 버그가 있다고 생각하는 것입니다.그 문제에 나를 도울 수있는 사람이 있습니까?

도움이 되었습니까?

해결책

나는 특정 위치로 스크롤 할 수 없었습니다. 그러나 나는 GridView의 상태를 복원 할 수 있음을 발견했습니다.내 응용 프로그램에서는 사용자 정의 백 스택 메커니즘을 구현해야했으며, 얻을 수있는 상태를 전달할 수 있습니다 :

Parcelable state = mgridView.onSaveInstanceState();
.

상태는 PARCEBALL이므로 I 의도에 PUTPACCLABLE을 써서 가져온 다음 필요에 따라 상태를 복원 할 수있었습니다.

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

상태를 복원하면 그리드의 이전 위치를 정확하게 복원합니다.

이것은 다른 누구도이 문제를 직면하는 데 도움이됩니다!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top