我正在使用ListFragment
带有自定义适配器的 a,它用于扩展视图。AsyncTaskLoader
一旦创建了片段,数据就会被加载。
我现在的问题是我想滚动(不是平滑滚动)到某个位置以显示最后一个选定的元素,即当我选择一个元素时片段被破坏,我想在片段显示后在列表中显示相同的位置再次显示。
所以创建视图并且一切正常,但我不知道在哪里添加getListView().setSelection(x)
线以滚动到某个位置。我试图在清除并将元素添加到Loader<?>.onLoadFinished()
函数中的适配器后调用它,但这不起作用,我得到以下异常:
java.lang.IllegalStateException: Content view not yet created
at android.support.v4.app.ListFragment.ensureList(ListFragment.java:328)
at android.support.v4.app.ListFragment.getListView(ListFragment.java:222)
at fs.pokemon.effect.PokemonFragment.updateData(PokemonFragment.java:239)
at fs.pokemon.effect.PokemonFragment$2.onLoadFinished(PokemonFragment.java:129)
...
我的问题是:当 ListView 完成更新其内容时,是否有函数/回调让我收到通知?或者在内容加载后如何将视图滚动到某个位置?