단일보기 내에서 여러 탭 호스트를 만들려고합니다. 이 예제에서는 iosched 응용 프로그램의 코드 샘플과 사용자가보기간에 슬라이드하기 위해 왼쪽/오른쪽으로 스 와이프 할 수있는 '작업 공간'보기를 사용하고 있습니다.하나의보기에서 여러 tabhost 요소 만들기
각 슬라이딩 뷰에는 탭 호스트가 포함됩니다.
내가 겪고있는 문제는 두 번째, 세 번째 탭 호스트를 채울 때 모든 콘텐츠가 첫 번째 탭 호스트에 표시되는 것이지 적절한 첫 번째 탭 호스트에 나타나지 않는다는 것입니다.
내가 개체의 목록이 목록에있는 각 개체는 별도의 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
위의 코드 스 니펫은 생성하려는 각 탭 호스트에 대해 루프에서 한 번 실행됩니다. – HeneryH