Most visited

Recently visited

Added in API level 1

TabWidget

public class TabWidget
extends LinearLayout implements View.OnFocusChangeListener

java.lang.Object
   ↳ android.view.View
     ↳ android.view.ViewGroup
       ↳ android.widget.LinearLayout
         ↳ android.widget.TabWidget


显示表示父级选项卡集合中每个页面的选项卡标签列表。

这个小部件的容器对象是TabHost 当用户选择一个选项卡时,该对象向父容器TabHost发送一条消息,告诉它切换显示的页面。 您通常不会直接在此对象上使用许多方法。 容器TabHost用于添加标签,添加回调处理程序并管理回调。 您可能会调用该对象来迭代制表符列表,或者调整制表符列表的布局,但应该在包含的TabHost对象上调用大多数方法。

Summary

XML attributes

android:divider Drawable used to draw the divider between tabs. 
android:tabStripEnabled Determines whether the strip under the tab indicators is drawn or not. 
android:tabStripLeft Drawable used to draw the left part of the strip underneath the tabs. 
android:tabStripRight Drawable used to draw the right part of the strip underneath the tabs. 

Inherited XML attributes

From class android.widget.LinearLayout
From class android.view.ViewGroup
From class android.view.View

Inherited constants

From class android.widget.LinearLayout
From class android.view.ViewGroup
From class android.view.View

Inherited fields

From class android.view.View

Public constructors

TabWidget(Context context)
TabWidget(Context context, AttributeSet attrs)
TabWidget(Context context, AttributeSet attrs, int defStyleAttr)
TabWidget(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)

Public methods

void addView(View child)

添加子视图。

void childDrawableStateChanged(View child)

如果 addStatesFromChildren()为真,则刷新该组的可绘制状态(以包括来自其子的状态)。

void dispatchDraw(Canvas canvas)

通过绘制来绘制子视图。

void focusCurrentTab(int index)

设置当前选项卡并在其上关注用户界面。

CharSequence getAccessibilityClassName()

返回此对象的类名称以用于辅助功能。

View getChildTabViewAt(int index)

返回给定索引处的选项卡指示器视图。

Drawable getLeftStripDrawable()
Drawable getRightStripDrawable()
int getTabCount()

返回标签指示器视图的数量。

boolean isStripEnabled()

指示是否绘制标签指示器上的底部条。

void onFocusChange(View v, boolean hasFocus)

当视图的焦点状态发生变化时调用。

void removeAllViews()

调用此方法从ViewGroup中删除所有子视图。

void setCurrentTab(int index)

设置当前选项卡。

void setDividerDrawable(int resId)

将绘图设置为用作选项卡指示器之间的分隔线。

void setDividerDrawable(Drawable drawable)

将绘图设置为用作选项卡指示器之间的分隔线。

void setEnabled(boolean enabled)

设置此视图的启用状态。

void setLeftStripDrawable(Drawable drawable)

将绘图设置为标签指示器下方条的左侧部分。

void setLeftStripDrawable(int resId)

将绘图设置为标签指示器下方条的左侧部分。

void setRightStripDrawable(int resId)

将绘图设置为标签指示器下方条的右侧部分。

void setRightStripDrawable(Drawable drawable)

将绘图设置为标签指示器下方条的右侧部分。

void setStripEnabled(boolean stripEnabled)

控制是否绘制标签指示器上的底部条。

Protected methods

int getChildDrawingOrder(int childCount, int i)

返回为此迭代绘制的子的索引。

void onSizeChanged(int w, int h, int oldw, int oldh)

当这个视图的大小发生变化时,这在布局期间被调用。

Inherited methods

From class android.widget.LinearLayout
From class android.view.ViewGroup
From class android.view.View
From class java.lang.Object
From interface android.view.ViewParent
From interface android.view.ViewManager
From interface android.graphics.drawable.Drawable.Callback
From interface android.view.KeyEvent.Callback
From interface android.view.accessibility.AccessibilityEventSource
From interface android.view.View.OnFocusChangeListener

XML attributes

android:divider

可绘制用于在选项卡之间绘制分隔线。

可能是另一种资源的引用,其形式为“ @[+][package:]type:name ”,或者其形式为“一个主题属性 ?[package:][type:]name ”。

颜色值可以是“ #rgb ”,“ #argb ”,“ #rrggbb ”或“ #aarrggbb ”的形式。

这对应于全局属性资源符号 divider

相关方法:

android:tabStripEnabled

确定是否绘制了标签指示器下的条。

必须是布尔值,可以是“ true ”或“ false ”。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 tabStripEnabled

android:tabStripLeft

可绘制用于绘制标签下方条的左侧部分。

必须是另一个资源的引用,其形式为“ @[+][package:]type:name ”,或者其形式为“一个主题属性 ?[package:][type:]name ”。

这对应于全局属性资源符号 tabStripLeft

相关方法:

android:tabStripRight

Drawable用于绘制标签下方条的右侧部分。

必须是另一个资源的引用,其形式为“ @[+][package:]type:name ”,或者其形式为“一个主题属性 ?[package:][type:]name ”。

这对应于全局属性资源符号 tabStripRight

相关方法:

Public constructors

TabWidget

Added in API level 1
TabWidget (Context context)

Parameters
context Context

TabWidget

Added in API level 1
TabWidget (Context context, 
                AttributeSet attrs)

Parameters
context Context
attrs AttributeSet

TabWidget

Added in API level 1
TabWidget (Context context, 
                AttributeSet attrs, 
                int defStyleAttr)

Parameters
context Context
attrs AttributeSet
defStyleAttr int

TabWidget

Added in API level 21
TabWidget (Context context, 
                AttributeSet attrs, 
                int defStyleAttr, 
                int defStyleRes)

Parameters
context Context
attrs AttributeSet
defStyleAttr int
defStyleRes int

Public methods

addView

Added in API level 1
void addView (View child)

添加子视图。 如果没有设置布局参数,则此子视图的默认参数设置在该子级上。

注意:不要调用此方法 draw(android.graphics.Canvas)onDraw(android.graphics.Canvas)dispatchDraw(android.graphics.Canvas)或任何相关方法。

Parameters
child View: the child view to add

childDrawableStateChanged

Added in API level 1
void childDrawableStateChanged (View child)

如果 addStatesFromChildren()为真,则刷新该组的可绘制状态(以包括来自其子的状态)。

Parameters
child View: The child whose drawable state has changed.

dispatchDraw

Added in API level 1
void dispatchDraw (Canvas canvas)

通过绘制来绘制子视图。 这可能会被派生类重写,以便在子对象被绘制之前获得控制权(但在绘制自己的视图之后)。

Parameters
canvas Canvas: the canvas on which to draw the view

focusCurrentTab

Added in API level 1
void focusCurrentTab (int index)

设置当前选项卡并在其上关注用户界面。 此方法确保焦点选项卡与选定选项卡匹配,通常为setCurrentTab(int) 通常,如果我们浏览UI,这不会成为问题,因为UI负责调用TabWidget.onFocusChanged(),但是在我们以编程方式选择标签的情况下,我们需要确保焦点保持不变。

Parameters
index int: The tab that you want focused (highlighted in orange) and selected (tab brought to the front of the widget)

也可以看看:

getAccessibilityClassName

Added in API level 23
CharSequence getAccessibilityClassName ()

返回此对象的类名称以用于辅助功能。 如果子类正在实现的东西应该被视为一个全新的视图类,当它被可访问性使用时,子类只应该覆盖这个子类,与它所源自的类无关。 这用于填写AccessibilityNodeInfo.setClassName

Returns
CharSequence

getChildTabViewAt

Added in API level 4
View getChildTabViewAt (int index)

返回给定索引处的选项卡指示器视图。

Parameters
index int: the zero-based index of the tab indicator view to return
Returns
View the tab indicator view at the given index

getLeftStripDrawable

Added in API level 24
Drawable getLeftStripDrawable ()

相关XML属性:

Returns
Drawable the drawable used as the left part of the strip below the tab indicators, may be null

也可以看看:

getRightStripDrawable

Added in API level 24
Drawable getRightStripDrawable ()

相关XML属性:

Returns
Drawable the drawable used as the right part of the strip below the tab indicators, may be null

也可以看看:

getTabCount

Added in API level 4
int getTabCount ()

返回标签指示器视图的数量。

Returns
int the number of tab indicator views

isStripEnabled

Added in API level 8
boolean isStripEnabled ()

指示是否绘制标签指示器上的底部条。

Returns
boolean

onFocusChange

Added in API level 1
void onFocusChange (View v, 
                boolean hasFocus)

当视图的焦点状态发生变化时调用。

Parameters
v View: The view whose state has changed.
hasFocus boolean: The new focus state of v.

removeAllViews

Added in API level 1
void removeAllViews ()

调用此方法从ViewGroup中删除所有子视图。

注意:不要调用此方法 draw(android.graphics.Canvas)onDraw(android.graphics.Canvas)dispatchDraw(android.graphics.Canvas)或任何相关方法。

setCurrentTab

Added in API level 1
void setCurrentTab (int index)

设置当前选项卡。

此方法用于将选项卡带到Widget的前面,并用于向其余的UI发布不同的选项卡已被带到前台。

请注意,这与从视图逻辑中采用的传统“重点”是分开的。

例如,如果我们在选项卡式视图中有一个列表,则用户可能会在列表中上下导航,通过列表项移动UI焦点(橙色突出显示)。 但是,光标移动不会影响“选定”选项卡,因为正在滚动的内容全部位于同一个选项卡上。 选择的选项卡仅在我们在选项卡之间导航时才会更改(在此示例中,从列表视图移动到下一个选项卡视图)。

要同时移动焦点和选定的标签,请使用setCurrentTab(int) 通常,视图逻辑负责调整焦点,因此除非您规避UI,否则您可能只会将焦点放在此处。

Parameters
index int: the index of the tab that you want to indicate as the selected tab (tab brought to the front of the widget)

也可以看看:

setDividerDrawable

Added in API level 4
void setDividerDrawable (int resId)

将绘图设置为用作选项卡指示器之间的分隔线。

相关XML属性:

Parameters
resId int: the resource identifier of the drawable to use as a divider

setDividerDrawable

Added in API level 4
void setDividerDrawable (Drawable drawable)

将绘图设置为用作选项卡指示器之间的分隔线。

相关XML属性:

Parameters
drawable Drawable: the divider drawable

setEnabled

Added in API level 1
void setEnabled (boolean enabled)

设置此视图的启用状态。 启用状态的解释因子而异。

Parameters
enabled boolean: True if this view is enabled, false otherwise.

setLeftStripDrawable

Added in API level 8
void setLeftStripDrawable (Drawable drawable)

将绘图设置为标签指示器下方条的左侧部分。

相关XML属性:

Parameters
drawable Drawable: the left strip drawable

也可以看看:

setLeftStripDrawable

Added in API level 8
void setLeftStripDrawable (int resId)

将绘图设置为标签指示器下方条的左侧部分。

相关XML属性:

Parameters
resId int: the resource identifier of the drawable to use as the left strip drawable

也可以看看:

setRightStripDrawable

Added in API level 8
void setRightStripDrawable (int resId)

将绘图设置为标签指示器下方条的右侧部分。

相关XML属性:

Parameters
resId int: the resource identifier of the drawable to use as the right strip drawable

也可以看看:

setRightStripDrawable

Added in API level 8
void setRightStripDrawable (Drawable drawable)

将绘图设置为标签指示器下方条的右侧部分。

相关XML属性:

Parameters
drawable Drawable: the right strip drawable

也可以看看:

setStripEnabled

Added in API level 8
void setStripEnabled (boolean stripEnabled)

控制是否绘制标签指示器上的底部条。 默认是绘制它们。 如果用户为选项卡指示器指定自定义视图,则TabHost类将调用此方法禁用绘制底部条。

Parameters
stripEnabled boolean: true if the bottom strips should be drawn.

Protected methods

getChildDrawingOrder

Added in API level 1
int getChildDrawingOrder (int childCount, 
                int i)

返回为此迭代绘制的子的索引。 如果要更改儿童的绘图顺序,请覆盖此选项。 默认情况下,它返回i。

注:为了调用此方法,您必须首先通过调用 setChildrenDrawingOrderEnabled(boolean)来启用子订单。

Parameters
childCount int
i int: The current iteration.
Returns
int The index of the child to draw this iteration.

onSizeChanged

Added in API level 1
void onSizeChanged (int w, 
                int h, 
                int oldw, 
                int oldh)

当这个视图的大小发生变化时,这在布局期间被调用。 如果您刚刚添加到视图层次结构中,则会使用旧值0调用。

Parameters
w int: Current width of this view.
h int: Current height of this view.
oldw int: Old width of this view.
oldh int: Old height of this view.

Hooray!