private TabHost tabHost = null;
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉标题栏
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.index);
tabHost = getTabHost();
for (int i = 0; i < tabMenu.length; i++) { intents[i] = new Intent();
intents[i].setClass(this, IndexContentActivity.class);
tabSpecs[i] = tabHost.newTabSpec(tabMenu[i]); tabSpecs[i].setIndicator(tabMenu[i]);// 设置文字 tabSpecs[i].setContent(intents[i]);// 设置该页的内容
tabHost.addTab(tabSpecs[i]);// 将该页的内容添加到Tabhost }
tabHost.setCurrentTabByTag(tabMenu[0]); // 设置第一次打开时默认显示的标签,
updateTab(tabHost);//初始化Tab的颜色,和字体的颜色
tabHost.setOnTabChangedListener(new OnTabChangedListener()); // 选择监听器 }
class OnTabChangedListener implements OnTabChangeListener {
@Override
public void onTabChanged(String tabId) { tabHost.setCurrentTabByTag(tabId); System.out.println(\
System.out.println(\ updateTab(tabHost); } }
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { System.exit(0); return false;
} else if (keyCode == KeyEvent.KEYCODE_MENU && event.getRepeatCount() == 0) {
return true; // 返回true就不会弹出默认的setting菜单 }
return false; } /**
* 更新Tab标签的颜色,和字体的颜色 * @param tabHost */
private void updateTab(final TabHost tabHost) {
for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) { View view = tabHost.getTabWidget().getChildAt(i); TextView tv = (TextView) tabHost.getTabWidget().getChildAt(i).findViewById(android.R.id.title); tv.setTextSize(16);
tv.setTypeface(Typeface.SERIF, 2); // 设置字体和风格 if (tabHost.getCurrentTab() == i) {//选中
view.setBackgroundDrawable(getResources().getDrawable(R.drawable.category_current));//选中后的背景
tv.setTextColor(this.getResources().getColorStateList( android.R.color.black)); } else {//不选中
view.setBackgroundDrawable(getResources().getDrawable(R.drawable.category_bg));//非选择的背景
tv.setTextColor(this.getResources().getColorStateList( android.R.color.white)); } } } }
自定义TabHost,TabWidget样式 . 分类: Android 2012-04-12 14:48 29018人阅读 评论(28) 收藏 举报
androidlayouttabsencodingnullbutton 大家好,今天我为大家分享TabHost中怎样修改TabWidget样式。在很多界面美观的应用中很多都用到了TabHost,但他们要比系统默认的要漂亮得多。先看几张图: 京东商城底部菜单栏 新浪微博底部菜单栏 好了,看到这些漂亮的菜单栏是不是很惊讶,你可能会说用Button就可以实现啊 ,可是用Button的话控制显示的内容很麻烦,不如用TabHost控制效率更高。很想知道用TabHost是怎么实现的吧,下面就来研究如何实现这种漂亮的TabHost。先看一下效果图: 界面比较简单,要想做得漂亮换几张图片就可以了。 第一步:先在布局(这里用了main.xml创建时自动生成的)里面放上TabHost ,只要将TabHost控件托至屏幕中就可: [html] view plaincopyprint? 1. 2. 3. android:layout_width=\ 4. android:layout_height=\ 5. xmlns:android=\> 6. 10. 13. ht=\ android:id=\> 14. ight=\ android:id=\> 15. ight=\ android:id=\> 16. ight=\ android:id=\>
这里我们已经把LinearLayout和TextView去掉了,并将“xmlns:android=\添加大TabHost里了,这里要注意我们将TabHost的id定义为自己定义的id比不用android规定的id=\。
第二步:创建显示此TabWidget的布局tabmini.xml: [html] view plaincopyprint?
1.
2. 3. android:layout_width=\ 4. android:layout_height=\ 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Android TabHost用法(2)在线全文阅读。
相关推荐: