我正在使用Fragment Activity来自定义tab-widget,在我进入Fragment Activity之前我使用TabActivity,现在它已被弃用。所以我要将它更新为Fragment Activity,但我不知道如何自定义标签栏并添加每个标签的内容。任何人都知道帮助我解决问题。
Java编码
private void setTabs()
{
addTab("tab1", R.drawable.tab1, tab1.class);
addTab("tab2", R.drawable.tab2, tab2.class);
addTab("tab3", R.drawable.tab3, tab3.class);
addTab("tab4", R.drawable.tab4, tab4.class);
}
private void addTab(String labelId, int drawableId, Class<?> c)
{
FragmentTabHost tabHost = (FragmentTabHost)findViewById(android.R.id.tabhost);
TabHost.TabSpec spec = tabHost.newTabSpec("tab" + labelId);
View tabIndicator = LayoutInflater.from(this).inflate(R.layout.tab_indicator, null, false);
TextView title = (TextView) tabIndicator.findViewById(R.id.title);
title.setText(labelId);
ImageView icon = (ImageView) tabIndicator.findViewById(R.id.icon);
icon.setImageResource(drawableId);
spec.setIndicator(tabIndicator);
tabHost.addTab(spec);
}
答案 0 :(得分:0)
已编辑... 使用此行来膨胀片段选项卡:)
mTabHost.getTabWidget().getChildAt(0).inflate(getActivity(), R.layout.tab_layout, null);
振作起来
这很容易我的朋友:答案在于你的Tabhot。看到你的一部分代码。
tabHost.addTab(newTab(Constants.TAG_MainActivity, R.string.hello_world, R.id.tab1));
tabHost.addTab(newTab(Constants.TAG_Search, R.string.hello_world, R.id.tab2));
tabHost.addTab(newTab(Constants.TAG_Maps_Location, R.string.hello_world, R.id.tab3));
tabHost.addTab(newTab(Constants.TAG_More_Page, R.string.hello_world, R.id.tab4));
tabHost.getTabWidget().getChildAt(0).setBackgroundResource(R.drawable.footer_home_selector);
tabHost.getTabWidget().getChildAt(1).setBackgroundResource(R.drawable.footer_search_selector);
tabHost.getTabWidget().getChildAt(2).setBackgroundResource(R.drawable.footer_camera_selector);
tabHost.getTabWidget().getChildAt(3).setBackgroundResource(R.drawable.footer_more_selector);
private TabSpec newTab(String tag, int labelId, int tabContentId) {
Log.d(TAG, "buildTab(): tag=" + tag);
TabSpec tabSpec = mTabHost.newTabSpec(tag);
tabSpec.setIndicator("");
tabSpec.setContent(tabContentId);
return tabSpec;
}
答案 1 :(得分:0)
要添加选项卡,您必须使用tabhost对象。 设置tabhost后,尝试将新标签添加为:
mTabHost.addTab(mTabHost.newTabSpec("tab1").setIndicator("Tab1",getResources().getDrawable(R.drawable.tab1)),Tab1.class, null);
这将创建标签以及标签标题和图标。 如果您想为标签设置背景,请使用:
View v = mTabHost.getTabWidget().getChildAt(i);
v.setBackgroundResource(R.drawable.tab_bg);
此处, i 是标签的位置。