我之前做分页都是用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);也不是什么监听,。就是用他的点击执行事件.
下面是视图:
![](http://my.csdn.net/uploads/201207/23/1343029014_8630.png)
![](http://my.csdn.net/uploads/201207/23/1343029035_3923.png)
![](http://my.csdn.net/uploads/201207/23/1343029053_6877.png)
源码下载
分享到:
相关推荐
TabHost分页简单应用,以及解决TabHost下面白线问题.
androidTabhost的使用实例代码,仅供参考
android Tabhost使用Demo
Android TabHost ListView初学者的实例代码
Android 嵌套TabHost示例. 两层TabHost嵌套,实现的效果类似网页上的二级菜单栏。
Android Tabhost 实例demo 自定义Tabhost实现实例。
android tabhost 动态添加 删除 排序 重命名
Android TabHost动态增加和删除
android tabhost 动态添加,删除,排序,重命名
android TabHost(标签)的使用 简单实例。
android TabHost分页 demo 一开始就能用
NULL 博文链接:https://technicalsearch.iteye.com/blog/1924614
Android TabHost TabWidget 切换卡
android tabhost 动态添加,删除,排序,重命名
android Tabhost 实现底部菜单效果 菜单的图片和文字可以同时显示且选中带效果
android TabHost全用法,欢迎下载学习交流
android TabHost 底部显示 实现了底部显示选项卡
Android实现tabHost控件自定义页签页面源码
类似微信主界面,使用tabhost界面切换
android tabhost 动态添加 删除 排序 重命名