, ben şöyle benim Tab düzeni içine bir HorizontalScrollView gömme ediyorum ucunda fazladan yer ekleyerekTabHost içinde HorizontalScrollView kolayca parçalara arasında geçiş yapmak amacıyla
kaydırma önce:) orada aniden HorizontalScrollView sonunda bazı ekstra boşluk gösterir
kaydırma sonra kod oldukça karmaşıktır ama önemli bölümlerini göstermeye çalışırız.
{
mTabHost = (TabHost) childLayout.findViewById(android.R.id.tabhost);
mTabHost.setup();
FrameLayout tabsFL = (FrameLayout) childLayout.findViewById(android.R.id.tabcontent);
tabsFL.setId(TABS_FRAME_ID);
for (int i = 0; i < list.size(); i++) {
mTabHost.addTab(newTab(String.valueOf(i), list.get(i).getTitle(), tabsFL.getId()));
}
mTabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() {
@Override
public void onTabChanged(String tabId) {
updateTab(tabId, Integer.parseInt(tabId), list);
}
});
//manually load first fragment
mTabHost.setCurrentTab(mCurrentTab);
updateTab(String.valueOf(mCurrentTab), mCurrentTab, list);
}
private TabSpec newTab(String tag, String tabLabel, int tabContentId) {
int count = Integer.parseInt(tag);
count +=1;
View indicator = inflater.inflate(R.layout.details_tab,
(ViewGroup) childLayout.findViewById(android.R.id.tabs), false);
((TextView) indicator.findViewById(R.id.text)).setText(count + ". " + tabLabel);
TabSpec tabSpec = mTabHost.newTabSpec(tag);
tabSpec.setIndicator(indicator);
tabSpec.setContent(tabContentId);
return tabSpec;
}
private void updateTab(String tabId, int id, ArrayList<CustomObject> frags) {
mCurrentTab = id;
FragmentManager fm = activity.getSupportFragmentManager();
fm.beginTransaction()
.replace(TABS_FRAME_ID, DetailsFragment.newInstance(frags.get(id)), tabId)
.commitAllowingStateLoss();
}
Ayrıca
ilgisiz, ama aynı zamanda ilk sekme elle yüklemez bir sorun var (sekmeleri tıklayarak sadece çok ilki nedense yüklemez, mükemmel Fragments yükler).
: fillViewport =' 'HorizontalScrollView' içinde, bir örneği için çıkarmak için "doğru" denemek ve bunun işe yaradığını gör. Hem 'HorizontalScrollView' hem de 'TabWidget' 'android: layout_height = "wrap_content" ', yani' fillViewport 'nedeni olabilir. – g00dy
Maalesef bunu denedim ve farketmedi. Belki de yanlışlıkla ek (görünmez?) Bir sekme eklediğimi düşündüm, ancak bunun log deyimleriyle nerede olabileceğini bulamıyorum. –
Belki de içinde 'tabsFL' var? Bilmiyorum, ama belki de belki de son Sekme yarısı görünmez, çeneni de o kadar :) – g00dy