public static void getTabs(final Activity act) {
TabHost tabHost = new TabHost(act);
tabHost.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
LinearLayout lll = new LinearLayout(act);
lll.setOrientation(LinearLayout.VERTICAL);
TabWidget tabWidget = new TabWidget(act);
tabWidget.setId(android.R.id.tabs);
lll.addView(tabWidget, new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
FrameLayout frameLayout = new FrameLayout(act);
frameLayout.setId(android.R.id.tabcontent);
lll.addView(frameLayout, new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
tabHost.addView(lll, LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
tabHost.setup();
// первая вкладка
TabSpec firstTab = tabHost.newTabSpec("FIRST_TAB");
firstTab.setIndicator("Первая вкладка");
firstTab.setContent(new TabHost.TabContentFactory() {
public View createTabContent(String string) {
TextView in = new TextView(act);
in.setText("Текст в первой вкладке");
return in;
}
});
tabHost.addTab(firstTab);
// вторая вкладка
TabSpec nextTab = tabHost.newTabSpec("NEXT_TAB");
nextTab.setIndicator("Вторая вкладка");
nextTab.setContent(new TabHost.TabContentFactory() {
public View createTabContent(String string) {
TextView in = new TextView(act);
in.setText("Текст во второй вкладке");
return in;
}
});
tabHost.addTab(nextTab);
act.setContentView(tabHost);
}
В параметрах метода передаётся Activity в котором нужно построить вкладки. Туда же можно передать данные для отображения.Преимущество такого подхода, думаю, очевидно: в зависимости от данных, которые нужно отобразить в окне можно "на лету" менять число вкладок.
Комментариев нет:
Отправить комментарий