我有一个ListView (VL)和HListView (HL)作为项目(书架风格)。我正在保存VL状态,它正在工作,但现在我想要的是保存它的items状态,因为我希望HLs在它们再次呈现时恢复它们的状态。
所以我在我的BookShelfBaseAdapter里做了这样的事情
private List<Book> bookList;
private Parcelable[] bookListStates;
@Override
public View getView(int position, View view, ViewGroup parent) {
final int fPosition = position;
...
holder.booksHListView.setOnScrollListener(new ContentListOnScrollListener(holder) {
@Override
public void onScrollStateChanged(AbsHListView view, int scrollState) {}
@Override
public void onScroll(AbsHListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
bookListStates[fPosition] = holder.booksHListView.onSaveInstanceState();
}
});
if (bookListStates[fPosition] != null) {
holder.booksHListView.onRestoreInstanceState(bookListStates[fPosition]);
}
...
}当列表项再次呈现时,它们不再处于以前的状态.我在这里做错了什么?
耽误您时间,实在对不起。
发布于 2014-03-13 12:24:30
我发现了问题,我必须用“还原代码”切换“保存代码”,如下所示:
@Override
public View getView(int position, View view, ViewGroup parent) {
final int fPosition = position;
...
if (bookListStates[fPosition] != null) {
holder.booksHListView.onRestoreInstanceState(bookListStates[fPosition]);
}
holder.booksHListView.setOnScrollListener(new ContentListOnScrollListener(holder) {
@Override
public void onScrollStateChanged(AbsHListView view, int scrollState) {}
@Override
public void onScroll(AbsHListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
bookListStates[fPosition] = holder.booksHListView.onSaveInstanceState();
}
});
...}
它现在起作用了:)
发布于 2014-03-13 12:26:30
if (bookListStates[fPosition] != null) {
holder.booksHListView.onRestoreInstanceState(bookListStates[fPosition]);
}
holder.booksHListView.setOnScrollListener(new ContentListOnScrollListener(holder) {
@Override
public void onScrollStateChanged(AbsHListView view, int scrollState) {}
@Override
public void onScroll(AbsHListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
bookListStates[fPosition] = holder.booksHListView.onSaveInstanceState();
}https://stackoverflow.com/questions/22377837
复制相似问题