`
yunlonglove
  • 浏览: 241647 次
社区版块
存档分类
最新评论

android TabHost解决下面白线

 
阅读更多

我之前做分页都是用GridView和ActivityGroup实现的.因为觉得TabHost不好用,还有就是自己水平差的原因吧.如果帮的话,重写view任何问题都可以解决,呵呵,下面请看实现过程,其实很简单.

针对TabHost的运用,我就不多讲解了,网上例子好多,或者你也可以下载我的Demo查看,不过先声明,写的不好.

代码片段:

public class MyActivity extends TabActivity {
	private TabWidget tabWidget;

	/** Called when the activity is first created. */
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		Resources res = getResources(); // Resource object to get Drawables
		final TabHost tabHost = getTabHost(); // The activity TabHost
		TabHost.TabSpec spec; // Resusable TabSpec for each tab
		Intent intent; // Reusable Intent for each tab

		// Create an Intent to launch an Activity for the tab (to be reused)
		intent = new Intent().setClass(this, ArtistsActivity.class);

		// Initialize a TabSpec for each tab and add it to the TabHost
		spec = tabHost
				.newTabSpec("artists")
				.setIndicator("Artists",
						res.getDrawable(R.drawable.ic_tab_artists))
				.setContent(intent);
		tabHost.addTab(spec);

		// Do the same for the other tabs
		intent = new Intent().setClass(this, AlbumsActivity.class);
		spec = tabHost
				.newTabSpec("albums")
				.setIndicator("Albums",
						res.getDrawable(R.drawable.ic_tab_artists))
				.setContent(intent);
		tabHost.addTab(spec);

		intent = new Intent().setClass(this, SongsActivity.class);
		spec = tabHost
				.newTabSpec("songs")
				.setIndicator("Songs",
						res.getDrawable(R.drawable.ic_tab_artists))
				.setContent(intent);
		tabHost.addTab(spec);
		tabHost.setCurrentTab(2);
		View v;
		tabWidget = tabHost.getTabWidget();

		for (int i = 0; i < tabWidget.getChildCount(); i++) {
			// 获取tabview项
			v = tabWidget.getChildAt(i);
			// 设置tab背景颜色
			v.setBackgroundResource(android.R.color.white);
			// 获取textview控件,(默认为白色)
			TextView textView = (TextView) v.findViewById(android.R.id.title);
			textView.setTextColor(Color.BLACK);
			// 默认选项要处理
			if (tabHost.getCurrentTab() == i)
				v.setBackgroundResource(R.drawable.renren_sdk_pay_repair_btn);
		}
		// tabchanged的监听
		tabHost.setOnTabChangedListener(new OnTabChangeListener() {
			// tabId显示的是:newTabSpec里面的值
			@Override
			public void onTabChanged(String tabId) {
				// 首先把所有的view背景初始化了.
				for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) {
					View v = tabHost.getTabWidget().getChildAt(i);
					// 设置tab背景颜色
					v.setBackgroundResource(android.R.color.white);
					// 选中的进行处理
					if (tabHost.getCurrentTab() == i) {
						v.setBackgroundResource(R.drawable.renren_sdk_pay_repair_btn);
					}

				}
			}
		});

	}
}
其实就是那几行加注释部分,相信你看一下就明白.

解决Tab下面白线方法:

首先我们要获取Tab的分页view和textview控件,因为textview默认字体是白色.我们要进行处理.获取后进行相应处理(也就是该加背景的加背景,该改变字体颜色的改变字体颜色).最后我们要对TabHost进行监听(OnTabChangedListener);也不是什么监听,。就是用他的点击执行事件.

下面是视图:

源码下载




分享到:
评论

相关推荐

    解决TabHost下面白线

    本文将详细介绍如何使用TabHost实现分页应用,并针对“TabHost下面白线”这一问题提供解决方案。 首先,让我们理解TabHost的工作原理。TabHost是一个容器,它包含一个TabWidget来展示各个Tab标签,以及一个...

    Android TabHost动态增加和删除

    ### Android TabHost 动态增加与删除详解 #### 一、TabHost简介 TabHost是Android框架中的一个重要组件,用于创建具有多个标签页的应用界面。TabHost由三部分组成: 1. **`TabWidget`**:显示各个标签的组件。 2....

    androidtabhost的使用

    androidTabhost的使用实例代码,仅供参考

    android Tabhost使用Demo

    下面我们将深入探讨TabHost的使用方法以及涉及到的相关知识点。 1. **TabHost的基本概念** TabHost是一个容器,它可以在一个窗口内展示多个Tab标签,并且每个标签可以链接到不同的布局或Activity。TabHost通常与...

    android TabHost简单使用

    在Android开发中,TabHost是一个非常实用的组件,它允许我们创建带有多个选项卡的应用界面,每个选项卡可以展示不同的内容或活动。本篇文章将详细介绍如何在Android项目中使用TabHost,以及它的工作原理。 首先,...

    Android 嵌套TabHost示例

    在Android应用开发中,TabHost是一个非常重要的组件,它用于创建多标签的界面,让用户能够通过不同的标签页浏览和切换不同的功能或内容。本示例是关于如何在Android中实现嵌套的TabHost,即两个层级的TabHost,类似...

    Android TabHost Spinner ListView 实例代码

    在Android开发中,`TabHost`、`Spinner`和`ListView`是三个非常重要的组件,它们各自承担着不同的功能,并且可以协同工作以提供丰富的用户界面。`TabHost`用于创建多标签界面,`Spinner`则是一种下拉选择菜单,而`...

    android tabhost 动态添加 删除 排序 重命名

    android tabhost 动态添加 删除 排序 重命名

    android tabhost 日期

    在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个选项卡的用户界面,每个选项卡都可以展示不同的内容或活动。在这个特定的场景中,我们看到标题提及“android tabhost 日期”,这意味着开发者可能在...

    android TabHost自定义选项卡

    在Android应用开发中,TabHost是一个非常重要的组件,它允许我们创建带有多个选项卡的应用界面。这个组件在早期的Android版本中广泛使用,为用户提供了一种便捷的方式来组织和切换不同的视图或活动。本文将深入探讨...

    android tabhost 动态添加,删除,排序,重命名(5)

    android tabhost 动态添加,删除,排序,重命名

    androidTabhost界面切换

    在Android应用开发中,`TabHost` 是一个非常重要的组件,它用于实现多标签页的界面切换,类似于微信、QQ等应用的主界面布局。在本项目中,我们将深入探讨如何利用 `TabHost` 实现类似微信的界面切换效果。 首先,`...

    android TabHost(标签)的使用

    在Android开发中,TabHost是实现标签栏切换界面的一个关键组件。TabHost允许开发者创建一个具有多个Tab的界面,每个Tab都可以关联到不同的布局或活动(Activity),为用户提供直观的多视图导航体验。本文将深入讲解...

    Android Tabhost 实例demo

    在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个Tab标签的界面,每个标签页可以关联一个单独的活动(Activity)或者帧布局(FrameLayout)。本实例演示了如何在Android应用程序中自定义TabHost,以...

    android TabHost分页

    android TabHost分页 demo 一开始就能用

    android Tabhost 实现底部菜单效果

    在Android开发中,TabHost是实现底部导航菜单的一种传统方式,它允许用户在多个标签页之间切换,每个标签页通常代表一个不同的功能区域。本文将详细介绍如何使用TabHost来创建带有图片和文字,并且在选中时有明显...

    android tabhost 动态添加,删除,排序,重命名(1)

    android tabhost 动态添加,删除,排序,重命名

    android tabhost用法 源码

    下面将详细介绍TabHost的使用方法,以及如何通过源码进行理解和实践。 一、TabHost的结构与工作原理 TabHost主要由两个核心组件组成:TabWidget和FrameLayout。TabWidget显示了可点击的标签,而FrameLayout用于...

    Android tabhost控件

    在Android开发中,`TabHost`是一个非常重要的组件,它被用来实现标签栏导航功能,让用户可以在多个界面之间轻松切换。本篇文章将详细介绍`TabHost`的使用方法,并通过示例代码来帮助你理解其工作原理。 ### 1. ...

    android自定义TabHost

    在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个选项卡的界面,每个选项卡可以展示不同的内容。在传统的TabHost使用中,我们通常只能使用系统预设的样式和颜色,但为了使应用更加个性化,开发者...

Global site tag (gtag.js) - Google Analytics