话不多说,直接看代码吧!
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Resources res = getResources();
final TabHost tabHost = getTabHost(); // The activity TabHost
TabHost.TabSpec spec;
Intent intent; // Reusable Intent for each tab
intent = new Intent().setClass(this, IndexActivity.class);
spec = tabHost.newTabSpec("appInfo").setIndicator("",
res.getDrawable(R.drawable.ic_tab_home))
.setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, TypeActivity.class);
spec = tabHost.newTabSpec("type").setIndicator("",
res.getDrawable(R.drawable.ic_tab_type))
.setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, RankActivity.class);
spec = tabHost.newTabSpec("rank").setIndicator("",
res.getDrawable(R.drawable.ic_tab_rank))
.setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, SearchActivity.class);
spec = tabHost.newTabSpec("search").setIndicator("",
res.getDrawable(R.drawable.ic_tab_search))
.setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, ManageActivity.class);
spec = tabHost.newTabSpec("manage").setIndicator("",
res.getDrawable(R.drawable.ic_tab_manage))
.setContent(intent);
tabHost.addTab(spec);
tabHost.setCurrentTab(0);
View view ;
tabWidget=tabHost.getTabWidget();
for (int i = 0; i < tabWidget.getChildCount(); i++) {
// 获取tabview项
view=tabWidget.getChildAt(i);
view.setBackgroundResource(R.drawable.tab_normal);
// 选择项处理
if (tabHost.getCurrentTab()==i) {
view.setBackgroundResource(R.drawable.tab_selected);
}
// tabchanged的监听
tabHost.setOnTabChangedListener(new OnTabChangeListener() {
@Override
public void onTabChanged(String tabId) {
// TODO Auto-generated method stub
for (int j = 0; j < tabHost.getTabWidget().getChildCount(); j++) {
View view=tabHost.getTabWidget().getChildAt(j);
// 设置tab背景颜色
view.setBackgroundResource(R.drawable.tab_normal);
// 选中的进行处理
if (tabHost.getCurrentTab() == j) {
view.setBackgroundResource(R.drawable.tab_selected);
}
}
}
});
}
}
分享到:
相关推荐
在本案例中,我们将深入探讨如何实现一个自定义的Tabhost背景样式,特别是点击时可以更换背景图片的功能。 首先,我们需要理解TabHost的基本结构。在XML布局文件中,TabHost通常包含一个TabWidget和一个FrameLayout...
本文档用于解决更改安卓组件中的tabhost的选项卡背景图片的问题
如果需要自定义Tab的样式,如文字颜色、背景等,可以通过设置TabSpec的属性或者自定义View来实现。 6. **处理Tab切换事件** 为了在Tab切换时执行特定的操作,你可以监听`TabHost.OnTabChangeListener`。 ```java...
如果需要在运行时改变背景颜色,可以在用户触发某个事件(如点击按钮)时,使用`ColorDrawable`动态设置TabHost的背景颜色,例如: ```java TabHost tabHost = (TabHost) findViewById(R.id.tabhost); tabHost....
本教程将详细讲解如何自定义TabHost,使其背景图片能够随着选项卡的切换而滑动,从而提供更丰富的用户体验。 首先,我们需要了解TabHost的基本使用。TabHost是一个包含TabWidget和FrameLayout的布局,TabWidget用于...
3. 修改布局文件:检查TabHost所在的布局文件,确保没有设置额外的边距或背景色。也可以尝试设置`android:paddingBottom="0dp"`以消除底部的空白区域。 4. 使用自定义View:如果你仍然无法解决问题,可以考虑自定义...
实现的过程:声明TabHost对象、取得TabHost对象,为TabHost添加标签,新建一个newTabSpec(newTabSpec),设置其标签和图标(setIndicator),设置内容(setContent),然后设置TabHost的背景颜色、TabHost的背景图片,...
2. **创建TabHost**:创建 `TabHost` 对象,并设置其布局,通常包含一个 `TabWidget` 用于显示标签,以及一个 `FrameLayout` 用于显示内容。 3. **关联ViewPager和TabHost**:使用 `TabHost.TabSpec` 来定义每个...
这篇博客“tabhost 动态改变tab的背景图”探讨了如何在运行时动态地更改TabHost中的各个tab的背景图像。这在设计用户界面时特别有用,因为它允许开发者根据用户的交互或特定条件来调整应用的视觉风格。 首先,我们...
2. 设置TabHost的宿主:调用TabHost的setup()方法,传入一个FrameLayout的ID作为参数。 3. 添加Tab:使用TabHost的newTabSpec()方法创建新的标签规格,然后设置标签文本、图标以及选中时显示的活动或视图。 4. 链接...
如果需要自定义Tab的样式,例如改变文字颜色、背景等,可以通过创建自定义布局文件并将其设置为`TabSpec.setIndicator()`的参数来实现。 8. **注意点** - 在Android API 11及以上版本,TabHost已逐渐被...
在给定的场景中,"TabHost底部tab切换"指的是用户点击`TabHost`中的不同标签时,不仅会切换到对应的内容,同时还会改变选中标签的背景颜色,以视觉上突出当前选中的选项。 **TabHost基础知识:** 1. **TabWidget**...
5. **自定义外观**:为了使TabHost符合应用的UI设计,我们可以自定义标签的样式,包括文字颜色、背景色、图标等。这通常通过创建自定义的TabIndicator布局并设置到TabSpec中完成。 在"TabhostDemos"压缩包中,可能...
5. **自定义样式**:为了实现垂直TabHost的视觉效果,你可能需要自定义`TabWidget`的样式,例如更改标签的字体、颜色、背景等。这可以通过在项目的`res/values/styles.xml`文件中定义新的样式实现。 6. **适配器...
- 在对应的Activity中,需要使用`setTabHost()`方法设置当前Activity为TabHost的宿主,然后调用`TabHost.getTabWidget().setCurrentTab()`来选择初始的选项卡。 3. View对象作为内容: - 如果不想启动新的...
- 初始化TabHost:通常使用setContentView()方法设置TabHost的视图,并通过TabHost.setup()初始化它。 - 添加Tab:使用TabHost.addTab()方法为TabHost添加新的选项卡。这个方法需要传入TabSpec对象,其中包含了...
- 使用StateListDrawable(状态选择器)为不同状态(按下、默认等)设置不同的背景和颜色,实现点击反馈效果。 3. 平面布局 - 避免使用传统的3D效果,改为平面设计,使整个界面更加简洁现代。 - 使用Material ...
`TabHost` 可以帮助构建类似QQ应用的分组布局,比如“消息”、“联系人”、“动态”和“设置”等主要功能区域。下面我们将深入探讨如何使用`TabHost`来实现这样的分组功能。 首先,理解`TabHost`的基本结构是至关...
1. **设置TabHost**:在XML布局文件中,我们需要声明`<TabHost>`作为根元素,并为其指定一个唯一ID(通常为`android:id/tabhost`)。然后,在`TabHost`内部,包含`<TabWidget>`和`<FrameLayout>`,分别用于展示标签...
要创建一个TabHost应用,首先需要在XML布局文件中定义TabHost,并在其中设置TabWidget和FrameLayout。例如: ```xml <TabHost android:id="@android:id/tabhost" android:layout_width="match_parent" android:...