一般來說,我都是用Android默認的Tab,但此時Android會根據你增加的Tab頁面平均分配Tab標簽,假如你只有兩個Tab,那么長度將會很長,并且其高度略微過高,并不好看,網上解決這個問題有些是自定義Tab。我們仍然使用默認的Tab解決此問題。
?
修改前 代碼、圖片如下:
?
- import?android.app.TabActivity;??
- import?android.graphics.Color;??
- import?android.os.Bundle;??
- import?android.view.LayoutInflater;??
- import?android.widget.TabHost;??
- import?android.widget.TabHost.OnTabChangeListener;??
- ??
- public?class?MyTab?extends?TabActivity?implements?OnTabChangeListener?{??
- ??
- ????private?TabHost?myTabhost;??
- ??????
- ??????
- ????@Override??
- ????protected?void?onCreate(Bundle?savedInstanceState)?{??
- ????????//?TODO?Auto-generated?method?stub??
- ????????super.onCreate(savedInstanceState);??
- ????????myTabhost?=?this.getTabHost();??
- ????????//?get?Tabhost??
- ????????LayoutInflater.from(this).inflate(R.layout.main,??
- ????????????????myTabhost.getTabContentView(),?true);??
- ????????myTabhost.setBackgroundColor(Color.argb(150,?22,?70,?150));??
- ??
- ????????myTabhost.addTab(myTabhost.newTabSpec("One")//?make?a?new?Tab??
- ????????????????.setIndicator("查詢信息",?getResources().getDrawable(R.drawable.gimp))??
- ????????????????//?set?the?Title?and?Icon??
- ????????????????.setContent(R.id.widget_layout_Blue));??
- ????????//?set?the?layout??
- ??
- ????????myTabhost.addTab(myTabhost??
- ????????????????.newTabSpec("Two")??
- ????????????????//?make?a?new?Tab??
- ????????????????.setIndicator("簽到",??
- ????????????????????????getResources().getDrawable(R.drawable.mumule))??
- ????????????????//?set?the?Title?and?Icon??
- ????????????????.setContent(R.id.widget_layout_green));??
- ??
- ????}??
- ??
- ??????
- ??
- ????@Override??
- ????public?void?onTabChanged(String?tagString)?{??
- ????????//?TODO?Auto-generated?method?stub??
- ??????????
- ??????????
- ????}??
- ??
- }??
?
?
?
下面我就如何 改變Tab標簽大小及間距作出說明:
我在網上查閱文檔,如果要改變此大小或者間距,必須將標簽欄寬高設為 wrapContent(其他的我尚未驗證):以下為修改代碼及其效果:
?
?
- import?android.app.TabActivity;??
- import?android.graphics.Color;??
- import?android.os.Bundle;??
- import?android.view.LayoutInflater;??
- import?android.view.View;??
- import?android.view.ViewGroup.LayoutParams;??
- import?android.widget.LinearLayout;??
- import?android.widget.TabHost;??
- import?android.widget.TabWidget;??
- import?android.widget.TabHost.OnTabChangeListener;??
- ??
- public?class?MyTab?extends?TabActivity?implements?OnTabChangeListener?{??
- ??
- ????private?TabHost?myTabhost;??
- ??????
- ??????
- ????@Override??
- ????protected?void?onCreate(Bundle?savedInstanceState)?{??
- ????????//?TODO?Auto-generated?method?stub??
- ????????super.onCreate(savedInstanceState);??
- ????????myTabhost?=?this.getTabHost();??
- ????????//?get?Tabhost??
- ????????LayoutInflater.from(this).inflate(R.layout.main,??
- ????????????????myTabhost.getTabContentView(),?true);??
- ????????myTabhost.setBackgroundColor(Color.argb(150,?22,?70,?150));??
- ??
- ????????myTabhost.addTab(myTabhost.newTabSpec("One")//?make?a?new?Tab??
- ????????????????.setIndicator("查詢信息",?getResources().getDrawable(R.drawable.gimp))??
- ????????????????//?set?the?Title?and?Icon??
- ????????????????.setContent(R.id.widget_layout_Blue));??
- ????????//?set?the?layout??
- ??
- ????????myTabhost.addTab(myTabhost??
- ????????????????.newTabSpec("Two")??
- ????????????????//?make?a?new?Tab??
- ????????????????.setIndicator("簽到",??
- ????????????????????????getResources().getDrawable(R.drawable.mumule))??
- ????????????????//?set?the?Title?and?Icon??
- ????????????????.setContent(R.id.widget_layout_green));??
- ??
- ????????//?首先得到標簽欄??
- ????????TabWidget?tabWidget?=?myTabhost.getTabWidget();??
- ????????//設置標簽欄寬高為?WRAP_CONTENT??
- ????????LinearLayout.LayoutParams?params?=?new?LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,?LayoutParams.WRAP_CONTENT);??
- ????????tabWidget.setLayoutParams(params);??
- ????????int?count?=?tabWidget.getChildCount();??
- ????????//得到每一個標簽,并設置其寬高??
- ?????????for?(int?i?=?0;?i?<?count;?i++)?{??
- ???????????????View?view?=?tabWidget.getChildTabViewAt(i);?????
- ???????????????view.getLayoutParams().height?=?50;?//tabWidget.getChildAt(i)??
- ???????????????view.getLayoutParams().width?=?80;??
- ??????????????}??
- ??
- ????}??
- ??
- ??????
- ??
- ????@Override??
- ????public?void?onTabChanged(String?tagString)?{??
- ????????//?TODO?Auto-generated?method?stub??
- ??????????
- ??????????
- ????}??
- ??
- }??
?