国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android編程實現自定義Tab選項卡功能示例

2019-12-12 03:44:58
字體:
來源:轉載
供稿:網友

本文實例講述了Android編程實現自定義Tab選項卡功能。分享給大家供大家參考,具體如下:

import android.app.TabActivity;import android.content.Intent;import android.os.Bundle;import android.widget.*;import android.widget.TabHost.OnTabChangeListener;import android.os.Build;import android.view.View;import java.lang.reflect.Field;import android.view.LayoutInflater;public class testTabActivity extends TabActivity { /** Called when the activity is first created. */   @Override   public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     int width =45;     int height =48;     final TabHost tabs = getTabHost();     final TabWidget tabWidget = tabs.getTabWidget();     Field mBottomLeftStrip;     Field mBottomRightStrip;     LayoutInflater.from(this).inflate(R.layout.tab_views, tabs.getTabContentView(), true);     tabs.addTab(tabs.newTabSpec("first tab")       .setIndicator("信息",getResources().getDrawable(R.drawable.m))       .setContent(new Intent(testTabActivity.this,OneActivty.class))       );     tabs.addTab(tabs.newTabSpec("second tab")     .setIndicator("收藏",getResources().getDrawable(R.drawable.n))     .setContent(R.id.content));     tabs.addTab(tabs.newTabSpec("second tab")       .setIndicator("設置",getResources().getDrawable(R.drawable.s))       .setContent(R.id.content));     for (int i =0; i < tabWidget.getChildCount(); i++) {       /**       * 設置高度、寬度,不過寬度由于設置為fill_parent,在此對它沒效果       */       tabWidget.getChildAt(i).getLayoutParams().height = height;       tabWidget.getChildAt(i).getLayoutParams().width = width;     /**      * 設置tab中標題文字的顏色,不然默認為黑色      */      final TextView tv = (TextView) tabWidget.getChildAt(i).findViewById(android.R.id.title);      tv.setTextColor(this.getResources().getColorStateList(android.R.color.white));       /**       * 此方法是為了去掉系統默認的色白的底角       *       * 在 TabWidget中mBottomLeftStrip、mBottomRightStrip       * 都是私有變量,但是我們可以通過反射來獲取       *       * 由于還不知道Android 2.2的接口是怎么樣的,現在先加個判斷好一些       */     if (Float.valueOf(Build.VERSION.RELEASE) <= 2.1) {        try {          mBottomLeftStrip = tabWidget.getClass().getDeclaredField ("mBottomLeftStrip");          mBottomRightStrip = tabWidget.getClass().getDeclaredField ("mBottomRightStrip");          if(!mBottomLeftStrip.isAccessible()) {           mBottomLeftStrip.setAccessible(true);          }          if(!mBottomRightStrip.isAccessible()){           mBottomRightStrip.setAccessible(true);          }         mBottomLeftStrip.set(tabWidget, getResources().getDrawable (R.drawable.no));         mBottomRightStrip.set(tabWidget, getResources().getDrawable (R.drawable.no));        } catch (Exception e) {         e.printStackTrace();        }     } else {     /**     * 不做任何處理     */     }     View vvv = tabWidget.getChildAt(i);  if(tabs.getCurrentTab()==i){      vvv.setBackgroundDrawable(getResources().getDrawable(R.drawable.tab_button));  }  else {      vvv.setBackgroundDrawable(getResources().getDrawable(R.drawable.bar));  }     }     /**     * 當點擊tab選項卡的時候,更改當前的背景     */     tabs.setOnTabChangedListener(new OnTabChangeListener(){  @Override  public void onTabChanged(String tabId) {   // TODO Auto-generated method stub   for (int i =0; i < tabWidget.getChildCount(); i++) {   View vvv = tabWidget.getChildAt(i);   if(tabs.getCurrentTab()==i){       vvv.setBackgroundDrawable(getResources().getDrawable(R.drawable.tab_button));   }   else {       vvv.setBackgroundDrawable(getResources().getDrawable(R.drawable.bar));   }   }  }});   }}

更多關于Android相關內容感興趣的讀者可查看本站專題:《Android開發入門與進階教程》、《Android編程之activity操作技巧總結》、《Android資源操作技巧匯總》、《Android文件操作技巧匯總》、《Android操作SQLite數據庫技巧總結》、《Android操作json格式數據技巧總結》、《Android數據庫操作技巧總結》、《Android編程開發之SD卡操作方法匯總》、《Android視圖View技巧總結》及《Android控件用法總結

希望本文所述對大家Android程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宾川县| 德惠市| 延寿县| 枣庄市| 马关县| 唐海县| 临武县| 河北省| 莱阳市| 丰城市| 濮阳县| 丹巴县| 八宿县| 鄢陵县| 玉环县| 泸州市| 彭山县| 建昌县| 青海省| 会同县| 双柏县| 阿克陶县| 永寿县| 巴彦县| 曲阜市| 长治市| 焉耆| 乐东| 阜新| 讷河市| 明光市| 新平| 延川县| 连平县| 沙田区| 吉木萨尔县| 蛟河市| 襄汾县| 渑池县| 溆浦县| 明光市|