private void expand(TOCItem item) { if (item == null) return; item.setExpanded(true); // expand all parents for (TOCItem p = item.getParent(); p != null; p = p.getParent()) p.setExpanded(true); initItems(); refreshList(); if (mItems.size() > 0) { if (item.getGlobalIndex() >= 0) { mListView.setSelection(item.getGlobalIndex()); mListView.setSelectionFromTop(item.getGlobalIndex(), mListView.getHeight() / 2); } else mListView.setSelection(0); } }
private void initItems(TOCItem toc, boolean expanded) { for (int i = 0; i < toc.getChildCount(); i++) { TOCItem child = toc.getChild(i); if (child.getPage() <= mCurrentPage) mCurrentPageItem = child; if (expanded) { child.setGlobalIndex(mItems.size()); mItems.add(child); } else { child.setGlobalIndex(-1); // invisible } initItems(child, expanded && child.getExpanded()); } }
private void collapse(TOCItem item) { item.setExpanded(false); initItems(); refreshList(); }