Here is a new library i have created that allows you to customise a TabHost.
TabHostExtras
Version: 2.2
Attached are the library files and a little demo.
If you run the demo try your device's 'Menu' key and toggle the tabs from visible to hidden.
I originally created this functionality in a code module and once it was working created the library.
So i have attached the code module as a separate attachment in case anyone wants to use it - the Reflection library is required if you use the code module but is not required if you use the library of course.
The code module has a Sub (not included in the library):
GetTabIndicators(TabHost1 As TabHost) As View()
This will return an array of Views, these Views are the TabHost's TabIndicators.
Anyone hoping to further customise the look of a TabHost may find this Sub useful - see the code module demo for an example of changing the TabIndicators' Color property.
Martin.
TabHostExtras
Version: 2.2
- TabHostExtras
Methods:- GetTagWidget (TabHost1 As TabHost) As TabWidget
Returns TabHost1's TabWidget.
Allowing you to customize various settings. - getTabContentViewPadding (tabHost1 As TabHost) As RectWrapper
Get the layout padding of tabHost1 TabContentView
Returns a Rect object containing pixel values - getTabEnabled (tabHost1 As TabHost, index As Int) As Boolean
Get the Enabled state of TabIndicator #index in tabHost1 - getTabHeight (tabHost1 As TabHost) As Int
Get the height (in pixels) of the TabIndicators in tabHost1 - getTabHostPadding (tabHost1 As TabHost) As RectWrapper
Get the layout padding of tabHost1 container View
Returns a Rect object containing pixel values - getTabIcon (tabHost1 As TabHost, TabIndex As Int) As ImageViewWrapper
Get the (icon) ImageView of TabIndicator #TabIndex in tabHost1 - getTabTextSize (tabHost1 As TabHost) As Float
Get the text size (in pixels) of all TabIndicators - getTabVisibility (tabHost1 As TabHost, index As Int) As Boolean
Get the visibility of TabIndicators #index in tabHost1 - setTabContentViewPadding (tabHost1 As TabHost, left As Int, top As Int, right As Int, bottom As Int)
Set the layout padding (in dip) of tabHost1 TabContentView - setTabEnabled (tabHost1 As TabHost, enabled As Boolean)
Enable or disable all TabIndicators in tabHost1 - setTabEnabled2 (tabHost1 As TabHost, enabled As Boolean, index As Int)
Enable or disable TabIndicator #index in tabHost1 - setTabGradientDrawable (tabHost1 As TabHost, orientation As String, color1 As Int, color2 As Int, cornerRadius As Float)
Set a GradientDrawable as the background on all TabIndicators in tabHost1
All fours corner radii of the GradientDrawable are set to the value of cornerRadius (in pixels) - setTabGradientDrawable2 (tabHost1 As TabHost, orientation As String, color1 As Int, color2 As Int, cornerRadius() As Float)
Set a GradientDrawable as the background on all TabIndicators in tabHost1
Corner radii of the GradientDrawable are set individually (in pixels) based upon the number of elements in the array cornerRadius:
1 element defines all corner radii
2 elements define corner radii in order top left and right, bottom left and right
4 elements define corner radii in order top-left, top-right, bottom-right, bottom-left - setTabHeight (tabHost1 As TabHost, tabHeight As Int)
Set the height (in pixels) of all TabIndicators in tabHost1 - setTabHostPadding (tabHost1 As TabHost, left As Int, top As Int, right As Int, bottom As Int)
Set the layout padding (in dip) of tabHost1 container View - setTabTextColor (tabHost1 As TabHost, Color As Int)
Set the color to be used for all tab indicators text.
This color will be used for all tab indicators regardless of their selected state. - setTabTextColorStateList (tabHost1 As TabHost, ColorStateListName As String)
Set a ColorStateList to be used for the text color of all tab indicators.
The ColorStateList must be defined in XML in your application Objects/res/drawable folder.
Color for selected and not selected tab state can be defined. - setTabTextSize (tabHost1 As TabHost, TextSize As Float)
Set the text size of all TabIndicators
TextSize is assumed to be in units of dip. - setTabTitle (tabHost1 As TabHost, Title As String, TabIndex As Int)
Set the Title text of TabIndicator #TabIndex in tabHost1 - setTabVisibility (tabHost1 As TabHost, visible As Boolean)
Set the visibility of all TabIndicators in tabHost1 - setTabVisibility2 (tabHost1 As TabHost, visible As Boolean, index As Int)
Set the visibility of TabIndicator #index in tabHost1
- GetTagWidget (TabHost1 As TabHost) As TabWidget
- TabWidget
Methods:- BringToFront
- GetChildTabViewAt (TabIndex As Int) As View
Returns the tab indicator view at the given index.
The returned View will be a ViewGroup with 2 child Views:
An ImageView at index 0 and a TextView at Index 1. - GetTabIcon (TabIndex As Int) As ImageViewWrapper
Get the (icon) ImageView of the tab indicator view at the given index. - GetTabLabel (TabIndex As Int) As LabelWrapper
Get the (TextView) Label of the tab indicator view at the given index. - Initialize (arg1 As String)
- Invalidate
- Invalidate2 (arg0 As Rect)
- Invalidate3 (arg0 As Int, arg1 As Int, arg2 As Int, arg3 As Int)
- IsInitialized As Boolean
- RemoveView
- RequestFocus As Boolean
- SendToBack
- SetBackgroundImage (arg0 As Bitmap)
- SetLayout (arg0 As Int, arg1 As Int, arg2 As Int, arg3 As Int)
- Background As Drawable
- Color As Int [write only]
- DividerDrawable As Drawable [write only]
Sets the drawable to use as a divider between the tab indicators. - Enabled As Boolean
Get or Set the enabled state of the TabWidget. - Height As Int
- Left As Int
- LeftStripDrawable As Drawable [write only]
Sets the drawable to use as the left part of the strip below the tab indicators. - RightStripDrawable As Drawable [write only]
Sets the drawable to use as the right part of the strip below the tab indicators. - StripEnabled As Boolean
Get or Set whether the bottom strips on the tab indicators are drawn or not. - TabCount As Int [read only]
Get the number of tab indicator views. - Tag As Object
- Top As Int
- Visible As Boolean
- Width As Int
Attached are the library files and a little demo.
If you run the demo try your device's 'Menu' key and toggle the tabs from visible to hidden.
I originally created this functionality in a code module and once it was working created the library.
So i have attached the code module as a separate attachment in case anyone wants to use it - the Reflection library is required if you use the code module but is not required if you use the library of course.
The code module has a Sub (not included in the library):
GetTabIndicators(TabHost1 As TabHost) As View()
This will return an array of Views, these Views are the TabHost's TabIndicators.
Anyone hoping to further customise the look of a TabHost may find this Sub useful - see the code module demo for an example of changing the TabIndicators' Color property.
Martin.
Attachments
Last edited: