単一のビュー内に複数のタブホストを作成しようとしています。この例では、ioschedアプリケーションのコードサンプルと 'workspace'ビューを使用しています。このビューでは、左右にスワイプしてビュー間をスライドできます。複数のtabhost要素を1つのビューで作成する
各スライディングビューにはタブホストが含まれます。
私が抱えている問題は、2番目、3番目などのタブホストを作成すると、すべてのコンテンツが最初のタブホストに表示され、適切なものではないということです。
私はオブジェクトのリストを持って、リスト内の各オブジェクトは、個別のtabhostがあります
Outer loop over each xxx to build a tabhost for each xxx
// Setup views
ctlr.mRootView = (ViewGroup) inflater.inflate(R.layout.controllers_list_content_tabbed, null);
ctlr.scrollView = (ObservableScrollView) ctlr.mRootView.findViewById(R.id.controllers_scroll);
ctlr.scrollView.setOnScrollListener(this);
ctlr.mTabHost = (TabHost) ctlr.mRootView.findViewById(android.R.id.tabhost);
ctlr.mTabWidget = (TabWidget) ctlr.mRootView.findViewById(android.R.id.tabs);
ctlr.mTabHost.setup();
ctlr.mTabRealContentView = ctlr.mRootView.findViewById(R.id.realtabcontent);
int mTabReakContentViewId = ctlr.mTabRealContentView.getId();
ctlr.mTabManager = new TabManager(this, ctlr.mTabHost, mTabReakContentViewId);
.
.
. I loop several tabs like the snippet below and I expect each of these tabs on each tabhost
.
// Supply controller uri as an argument.
Bundle args = new Bundle();
args.putInt("controllerId", ctlr.mControllerId);
String tagSpec = TAG_PROBES + "_" + ctlr.mControllerId.toString();
ctlr.mTabManager.addTab(ctlr.mTabHost.newTabSpec(tagSpec)
.setIndicator(buildIndicator(ctlr, R.string.db_maint_probes)),
DbMaintProbesFragment.class,
args);
.
.
.
mWorkspace.addView(ctlr.mRootView);
mCtlrs.add(ctlr); <<-- this is the linked list of all the items added to the workspace
私は問題は毎回がTabManagerがその最後にnew'edされているという事実に何らかの形で関係していると思います同じRealTabContentリファレンスを常に使用しています。
これは私を夢中にさせている。
それぞれのタブホストがそれぞれの断片に組み込まれている間、私はすべてが最初のRealTabContent IDを参照していることがわかります。
ご協力いただきありがとうございます。
残念ですが、TabManagerはGoogleサンプルコードhttp://developer.android.com/resources/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentTabs.htmlに記載されているヘルパークラスです。フラグメントの管理に役立ちますタブで – HeneryH
上記のコードスニペットは、作成したいタブホストごとに1回ループで実行されます。 – HeneryH