0

Algorithm question here.

I'm creating an app that shows a legal document, with tabs for navigation (TOC, bookmarks, etc). Inside the TOC tab, I need to show a multilevel table of contents. At the 'leaf' of the toc, I need to show a TextView

So, I could have:

tab1: List -> List -> List -> List -> List -> TextView

or

tab1: List -> List -> List -> TextView

or

tab1: List -> TextView

depending on the chapter, section, subsection, subsubsection structure of the book I'm showing.

Now, it doesn't matter how deep you are, the TabHost needs to be ALWAYS PRESENT, to provide the main navigation. (Yes, I asked, and I need to use the tabs, not a menu.)

The question:

How do you implement the recursive List inside the FrameLayout of a tab? Or should I use a ListView styled as tabs and just not use the TabHost?

Ideas?

Thanks!
llappall

4

1 に答える 1

1

わかった。、、、またはそのことに関してスクロール可能なもののListViewsListViewsに入れることができないナンバーワン(つまり、アイテムを入れることはできません)。コンパイルされたり、実行されたりする可能性がありますが、結果は期待または期待どおりにはなりません。これは、に設定された高さを持つことができないためです。ScrollViewsGridViewsListViewListViewListViewWRAP_CONTENT

2つのレベルのリスト(ExpandableListView)を持つことができますが、それよりも多くのレベルが必要な場合は、ListViewまたはを拡張して機能を自分で実装する必要がありますExpandableListView

セクションリストや複数のアイテムタイプのリストを作成することもできますが、デフォルトのSDKコンポーネントを使用して5レベルのリストを取得する方法はありません。

2番目:はい、あなたはListView内部を持つことができますTabHost。を使用することはできませんが、それは単にメソッドを直接ListActivity呼び出す必要があることを意味します。ListView

ListView myList = findViewById(R.id.myList);
myList.setAdapter(myListAdapter);

ListActivity組み込みメソッドを呼び出す代わりに。

レイアウトファイルの中にあなたListViewを置くだけです。FrameLayout3つのタブがあり、ListViewが内の最初の要素であるFrameLayout場合、最初のタブのコンテンツとして表示されます。2番目の要素の場合は、2番目のタブのコンテンツになります。

組み込みコンポーネントを使用して再帰リストを実装できる唯一の方法は、単一のを使用し、ユーザーがアイテムを選択したときListViewのアダプターの内容を変更することです(基本的に単一のListViewを使用したドリルダウンメニュー)。また、ユーザーがリストを上に移動したり、どこかに戻るボタンを提供したりできるようにするにはListView、戻るボタンをキャッチする必要があります。onBackPressed

于 2011-03-21T21:52:30.497 に答える