成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

解析Android Widget中文API中TabWidget

移動(dòng)開發(fā)
Android中文API中TabWidget的內(nèi)容是本文要介紹的內(nèi)容,主要是來了解并學(xué)習(xí)Android Widget 的應(yīng)用及TabWidget的應(yīng)用,具體內(nèi)容的實(shí)現(xiàn)來看本文詳解。

Android中文API中TabWidget的內(nèi)容是本文要介紹的內(nèi)容,主要是來了解并學(xué)習(xí)Android Widget 的應(yīng)用及TabWidget的應(yīng)用,具體內(nèi)容的實(shí)現(xiàn)來看本文詳解。

一、結(jié)構(gòu)

  1. publicclassTabWidgetextendsLinearLayout  
  2.  
  3. implementsView.OnFocusChangeListener  
  4.  
  5. java.lang.Object  
  6.  
  7. android.view.View  
  8.  
  9. android.view.ViewGroup  
  10.  
  11. android.widget.LinearLayout  
  12.  
  13. android.widget.TabWidget 

二、概述

顯示選項(xiàng)卡標(biāo)簽的列表,用于代表父選項(xiàng)卡集合的每一頁。當(dāng)前widget的容器對(duì)象是TabHost。當(dāng)用戶選擇一個(gè)選項(xiàng)卡時(shí),此對(duì)象給父容器對(duì)象TabHost發(fā)送一個(gè)消息,告訴TabHost切換到對(duì)應(yīng)的頁面顯示。此對(duì)象上的很多方法,你通常不會(huì)直接使用。容器TabHost被用來添加標(biāo)簽,添加并管理回調(diào)函數(shù)。你可能會(huì)調(diào)用此對(duì)象以迭代選項(xiàng)卡列表,或者調(diào)整選項(xiàng)卡列表的布局,但大多數(shù)方法應(yīng)該是通過容器TabHost對(duì)象調(diào)用。

參見TabLayouttutorial。

三、XML屬性

屬性名稱描述

android:divider可繪制對(duì)象,被繪制在選項(xiàng)卡窗口間充當(dāng)分割物。

android:tabStripEnabled確定是否在選項(xiàng)卡繪制

android:tabStripLeft被用來繪制選項(xiàng)卡下面的分割線左邊部分的可視化對(duì)象。

android:tabStripRight被用來繪制選項(xiàng)卡下面的分割線右邊部分的可視化對(duì)象。

四、公共方法

  1. publicvoidaddView(Viewchild) 

增加子視圖。如果子視圖沒有設(shè)置布局參數(shù),那么將為子視圖設(shè)置此ViewGroup默認(rèn)的布局參數(shù)。

參數(shù)

child新增的子視圖

  1. publicvoidchildDrawableStateChanged(Viewchild) 

如果調(diào)用addStatesFromChildren函數(shù)返回true,刷新此組的可視化對(duì)象的狀態(tài)(包括它的子元素的狀態(tài))。

參數(shù)

child可視化對(duì)象狀態(tài)被改變的子元素。

  1. publicvoiddispatchDraw(Canvascanvas) 

繪制時(shí)調(diào)用此方法來繪制子視圖。派生類在被繪制之前,為獲取控制可能會(huì)重寫此方法(但必須在它自己的視圖已經(jīng)被繪制之后)。

參數(shù)

canvas繪制視圖的畫布(canvas)

  1. publicvoidfocusCurrentTab(intindex) 

設(shè)置當(dāng)前選項(xiàng)卡并且讓其獲得焦點(diǎn)。此方法確保獲取焦點(diǎn)的選項(xiàng)卡窗口匹配選中的窗口,一般情況下類似setCurrentTab(int)。通常當(dāng)我們通過操作UI實(shí)現(xiàn)時(shí),這些都不是問題,因?yàn)閁I負(fù)責(zé)調(diào)用TabWidget.onFocusChanged(),但如果我們通過程序控制選中選項(xiàng)卡窗口,那么我們就必須確認(rèn)保持焦點(diǎn)。(譯者注:setCurrentTab(int)執(zhí)行后,選中指定索引的選項(xiàng)卡窗口,但不獲取焦點(diǎn)。focusCurrentTab(int)執(zhí)行后,不僅通過調(diào)用setCurrentTab(int)選中指定索引的選項(xiàng)卡窗口還獲取焦點(diǎn)。)

參數(shù)

index你想要設(shè)置焦點(diǎn)(橘色高亮)并且選中(選項(xiàng)卡被至于部件widget的前端)的選項(xiàng)卡。

參見

  1. setCurrentTab(int)  
  2. publicViewgetChildTabViewAt(intindex) 

返回位于指定索引位置的選項(xiàng)卡標(biāo)識(shí)符的視圖

參數(shù)

index選項(xiàng)卡指示符視圖返回的從零開始的索引

返回值

在提供的索引位置上的選項(xiàng)卡指示符視圖

  1. publicintgetTabCount() 

返回選項(xiàng)卡的數(shù)量

返回值

選項(xiàng)卡指示符視圖的數(shù)量

  1. publicbooleanisStripEnabled() 

指明選項(xiàng)卡指示符的底部分隔線是否繪制

  1. publicvoidonFocusChange(Viewv,booleanhasFocus) 

當(dāng)視圖的焦點(diǎn)狀態(tài)被改變時(shí)調(diào)用。

參數(shù)

v狀態(tài)變化的視圖

hasFocus視圖的新焦點(diǎn)狀態(tài)。

  1. publicvoidsendAccessibilityEventUnchecked(AccessibilityEventevent) 

處理用于發(fā)送AccessibilityEvent的請(qǐng)求。如果再發(fā)送之前調(diào)度事件,本方法不保證可訪問性檢查。可以通過調(diào)用者調(diào)用isEnabled()檢查。

參數(shù)

#p#

event事件

  1. publicvoidsetCurrentTab(intindex) 

設(shè)置當(dāng)前選項(xiàng)卡。此方法被用來將選項(xiàng)卡置于widget的前部,并且通知其它的UI元素,一個(gè)不同的選項(xiàng)卡被調(diào)整到了前臺(tái)。注意,這不同于傳統(tǒng)的“焦點(diǎn)”,是從視圖邏輯的焦點(diǎn)。

例如,如果我們?cè)谶x項(xiàng)卡式視圖中有一個(gè)列表,一個(gè)用戶可能會(huì)上下移動(dòng)列表,通過列表選項(xiàng)移動(dòng)UI焦點(diǎn)(橘色高亮)。光標(biāo)的移動(dòng)并不影響選項(xiàng)卡的選中狀態(tài),因?yàn)闈L動(dòng)是在同一個(gè)選項(xiàng)卡上的。選中的選項(xiàng)卡僅僅當(dāng)我們?cè)谶x項(xiàng)卡上切換時(shí)(在此例中,從列表視圖移到下一選項(xiàng)卡視圖)更改。如果想要一次性的設(shè)置焦點(diǎn)并選中選項(xiàng)卡,請(qǐng)使用setCurrentTab(int)。

正常情況下,視圖邏輯關(guān)注調(diào)整焦點(diǎn),除非你規(guī)避了UI,你可能僅僅將你的興趣集中在這里。

參數(shù)

index你想要指做選中選項(xiàng)卡的選項(xiàng)卡索引(選項(xiàng)卡被顯示到widget的前部)

參見

  1. focusCurrentTab(int)  
  2.  
  3. publicvoidsetDividerDrawable(Drawabledrawable) 

設(shè)置用于在選項(xiàng)窗口指示符間分隔的可繪制對(duì)象

參數(shù)

drawable用于分隔的可繪制對(duì)象

  1. publicvoidsetDividerDrawable(intresId) 

設(shè)置用于在兩個(gè)選項(xiàng)卡標(biāo)識(shí)符之間進(jìn)行分隔的可繪制對(duì)象

參數(shù)

resId被用來分隔的可繪制對(duì)象的資源標(biāo)識(shí)

  1. publicvoidsetEnabled(booleanenabled) 

設(shè)置當(dāng)前視圖的啟用狀態(tài)。子類的不同而其對(duì)應(yīng)的啟用狀態(tài)的解釋也不相同。

參數(shù)

enabled是否啟動(dòng)

  1. publicvoidsetLeftStripDrawable(intresId) 

設(shè)置被用來當(dāng)作選項(xiàng)卡指示符下面的分割線,左邊部分的可繪制對(duì)象。

參數(shù)

resIdthe被用來當(dāng)作左邊分隔線的可繪制對(duì)象的資源標(biāo)識(shí)符

  1. publicvoidsetLeftStripDrawable(Drawabledrawable) 

設(shè)置被用來當(dāng)作選項(xiàng)卡指示符下面的分割線,左邊部分的可繪制對(duì)象。

參數(shù)

drawable左邊分隔線的可繪制對(duì)象

  1. publicvoidsetRightStripDrawable(intresId) 

設(shè)置被用來當(dāng)作選項(xiàng)卡指示符下面的分割線,右邊部分的可繪制對(duì)象。

參數(shù)

resId被用來當(dāng)作右邊分隔線的可繪制對(duì)象的資源標(biāo)識(shí)符

  1. publicvoidsetRightStripDrawable(Drawabledrawable) 

設(shè)置被用來當(dāng)作選項(xiàng)卡指示符下面的分割線,右邊部分的可繪制對(duì)象。

參數(shù)

drawable右邊分隔線的可繪制對(duì)象

  1. publicvoidsetStripEnabled(booleanstripEnabled) 

控制選項(xiàng)卡指示符底部的分隔線是否繪制。默認(rèn)是繪制。如果用戶為選項(xiàng)卡指示符指定一個(gè)定制的視圖,那么TabHost類調(diào)用此方法以禁用繪制底部分割線。

參數(shù)

stripEnabled如果需要繪制底部分割線為true

#p#

五、受保護(hù)方法

  1. protectedintgetChildDrawingOrder(intchildCount,inti) 

返回要繪制的子元素在當(dāng)前迭代中的索引。如果你需要修改子元素的繪制順序,可以覆寫此方法。默認(rèn)情況下返回參數(shù)i值。

注意:為使此方法被調(diào)用,你必須先通過調(diào)用setChildrenDrawingOrderEnabled(boolean)啟用子元素排序

參數(shù)

i當(dāng)前的迭代值

返回值

將要繪制的子元素在當(dāng)前迭代的索引

  1. protectedvoidonSizeChanged(intw,inth,intoldw,intoldh) 

布局過程中,當(dāng)此視圖的大小發(fā)生改變時(shí)被調(diào)用的。如果你只是添加到視圖的層次結(jié)構(gòu),你調(diào)用時(shí)可以使用0當(dāng)作之前的值(oldvalue)。

參數(shù)

w此視圖的當(dāng)前寬度

h此視圖的當(dāng)前高度

oldwOld此視圖之前的寬度

oldh此視圖之前的高度

示例代碼

JAVA

 

  1. public class TabDemo1 extends Activity implements OnClickListener {  
  2.  
  3.     TabHost mTabHost = null;  
  4.     TabWidget mTabWidget = null;  
  5.     Button btnVisiable, btnStrip;  
  6.  
  7.     @Override  
  8.     protected void onCreate(Bundle savedInstanceState) {  
  9.         // TODO Auto-generated method stub  
  10.         super.onCreate(savedInstanceState);  
  11.         setContentView(R.layout.tabdemo1);  
  12.         mTabHost = (TabHost) findViewById(android.R.id.tabhost);  
  13.         mTabHost.setup();  
  14.         mTabWidget = mTabHost.getTabWidget();  
  15.         mTabHost.addTab(mTabHost.newTabSpec("tab1").setContent(  
  16.                 R.id.LinearLayout001).setIndicator("Tab1"));  
  17.         mTabHost.addTab(mTabHost.newTabSpec("tab2").setContent(  
  18.                 R.id.LinearLayout002).setIndicator("Tab2"));  
  19.         mTabHost.addTab(mTabHost.newTabSpec("tab3").setContent(  
  20.                 R.id.LinearLayout003).setIndicator("Tab3"));  
  21.  
  22.         // mTabHost.setCurrentTab(1);  
  23.         btnVisiable = (Button) findViewById(R.id.btnVisiable);  
  24.         btnStrip = (Button) findViewById(R.id.btnStrip);  
  25.         btnVisiable.setOnClickListener(this);  
  26.         btnStrip.setOnClickListener(this);  
  27.         setTitle("共有" + mTabWidget.getTabCount() + "個(gè)tab");  
  28.     }  
  29.  
  30.     @Override  
  31.     public void onClick(View v) {  
  32.         // TODO Auto-generated method stub  
  33.         switch (v.getId()) {  
  34.         case R.id.btnVisiable:  
  35.             if (mTabWidget.getVisibility() != android.view.View.VISIBLE)  
  36.                 mTabWidget.setVisibility(android.view.View.VISIBLE);  
  37.             else  
  38.                 mTabWidget.setVisibility(android.view.View.INVISIBLE);  
  39.             break;  
  40.  
  41.         case R.id.btnStrip:  
  42.             mTabWidget.setStripEnabled(!mTabWidget.isStripEnabled());  
  43.             mTabWidget.setRightStripDrawable(android.R.color.transparent);  
  44.             break;  
  45.         default:  
  46.             break;  
  47.         }  
  48.     }  

XML

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     android:layout_width="fill_parent" android:layout_height="fill_parent" 
  4.     android:id="@android:id/tabhost"> 
  5.     <LinearLayout android:layout_width="fill_parent" 
  6.         android:orientation="vertical" android:layout_height="fill_parent"> 
  7.             
  8.         <TabWidget android:id="@android:id/tabs" 
  9.             android:layout_width="fill_parent" android:layout_height="wrap_content"></TabWidget> 
  10.         <FrameLayout android:id="@android:id/tabcontent" 
  11.             android:layout_height="wrap_content" android:layout_width="fill_parent"> 
  12.             <LinearLayout android:id="@+id/LinearLayout001" android:orientation="vertical" 
  13.                 android:layout_width="fill_parent" android:layout_height="fill_parent"> 
  14.             <Button android:id="@+id/btnVisiable" android:text="顯示狀態(tài)切換" 
  15.                     android:layout_width="fill_parent" android:layout_height="wrap_content"></Button> 
  16.                 <Button android:id="@+id/btnStrip" android:layout_width="fill_parent" 
  17.                     android:layout_height="wrap_content" android:text="分隔線狀態(tài)切換"></Button> 
  18.                 <TextView android:id="@+id/TextView1" android:layout_width="fill_parent" 
  19.                     android:layout_height="wrap_content" android:text="小龍是好人!!!"></TextView> 
  20.                   
  21.             </LinearLayout> 
  22.             <LinearLayout android:id="@+id/LinearLayout002" 
  23.                 android:layout_width="fill_parent" android:layout_height="fill_parent"> 
  24.                 <TextView android:id="@+id/TextView2" android:layout_width="fill_parent" 
  25.                     android:layout_height="wrap_content" android:text="小龍是壞蛋!"></TextView> 
  26.             </LinearLayout> 
  27.             <LinearLayout android:id="@+id/LinearLayout003" 
  28.                 android:layout_width="fill_parent" android:layout_height="fill_parent"> 
  29.                 <TextView android:id="@+id/TextView3" android:layout_width="fill_parent" 
  30.                     android:layout_height="wrap_content" android:text="小龍還是壞蛋!"></TextView> 
  31.             </LinearLayout> 
  32.         </FrameLayout> 
  33.     </LinearLayout> 
  34. </TabHost> 

小結(jié):解析Android Widget中文API中TabWidget的內(nèi)容介紹完了,希望通過Android Widget的學(xué)習(xí)能對(duì)你有所幫助。

責(zé)任編輯:zhaolei 來源: 博客園
相關(guān)推薦

2011-09-07 14:34:55

Android Wid控件

2011-09-07 14:01:41

Android Wid實(shí)例

2011-09-09 10:00:20

Android Wid開發(fā)

2011-09-07 17:54:40

Android Wid開發(fā)

2010-07-13 09:08:27

Widget開發(fā)

2011-09-07 14:39:47

Android Wid設(shè)計(jì)

2011-09-08 15:40:45

Android Wid組件

2011-09-07 14:25:53

Android Wid設(shè)計(jì)

2010-04-23 11:21:05

Widget開發(fā)

2011-09-09 17:59:26

QT Widget

2011-09-07 14:55:28

Android WidAppWidget事件

2011-09-07 10:44:05

Android Wid

2011-09-08 14:21:37

jQueryWidget

2011-09-09 19:23:52

Widget

2011-09-08 16:17:45

Widget

2011-09-09 13:23:17

Widget

2011-09-14 13:56:28

Android API

2011-09-14 13:09:06

Android API

2011-09-14 14:08:23

Android API

2011-09-14 13:35:55

Android API
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 中文字幕一区在线 | 国产精品毛片无码 | 久久精品一 | 久久精品国产免费一区二区三区 | 久久精品无码一区二区三区 | 精品国产91 | 日韩靠逼 | 日韩久久久久 | 免费欧美视频 | 欧美精品综合在线 | 久久久久久亚洲精品 | 激情av| 亚洲午夜三级 | 国产美女精品视频 | 欧美精品一区在线 | 一区二区国产在线观看 | 国产精品九九 | 午夜影院在线观看 | 欧美一区二区三区四区在线 | 美国av毛片 | 国产精品视屏 | 一道本视频 | 亚洲国产欧美日韩 | 亚洲国产欧美在线 | 欧美理论 | 日韩高清电影 | 精品国产精品国产偷麻豆 | 亚洲视频免费观看 | 欧美在线视频一区二区 | 久久国产美女视频 | 欧美三级在线 | 91麻豆精品国产91久久久更新资源速度超快 | 精品久久久一区 | 亚洲成人中文字幕 | 日韩 欧美 综合 | 国产精品高潮呻吟久久 | 欧美日韩在线一区 | 国产在线观看一区二区三区 | 亚洲精品一二三区 | 美女国产精品 | 99欧美精品 |