gpt4 book ai didi

java - 将 Android 交错网格滚动到特定位置

转载 作者:行者123 更新时间:2023-11-30 09:04:55 24 4
gpt4 key购买 nike

我正在使用 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();
}
});

似乎没有任何效果,我开始认为这个 View 有某种与我的问题相关的错误。有没有人可以帮助我解决这个问题?

最佳答案

我发现我无法滚动到特定位置,但是,我确实发现我能够恢复 gridview 的状态。在我的应用程序中,我必须实现一个自定义的返回堆栈机制,你可以传递你可以从中获得的状态:

Parcelable state = mgridView.onSaveInstanceState();

状态是一个 Parcelable,所以我能够将 Parcelable 放入一个 Intent 中,然后检索它并根据需要恢复状态,就像这样

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

恢复状态后,它会准确恢复网格中的先前位置。

希望这可以帮助其他面临此问题的人!

关于java - 将 Android 交错网格滚动到特定位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25036094/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com