AndroidStagerEdGrid를 특정 위치로 스크롤하십시오
-
21-12-2019 - |
문제
저는 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);
}
.
상태를 복원하면 그리드의 이전 위치를 정확하게 복원합니다.
이것은 다른 누구도이 문제를 직면하는 데 도움이됩니다!
제휴하지 않습니다 StackOverflow