Android 默认Tab标签大小及间距修改

一般来说,我都是用Android默认的Tab,但此时Android会根据你增加的Tab页面平均分配Tab标签,假如你只有两个Tab,那么长度将会很长,并且其高度略微过高,并不好看,网上解决这个问题有些是自定义Tab。我们仍然使用默认的Tab解决此问题。

 

修改前 代码、图片如下:

 

  1. import android.app.TabActivity;  
  2. import android.graphics.Color;  
  3. import android.os.Bundle;  
  4. import android.view.LayoutInflater;  
  5. import android.widget.TabHost;  
  6. import android.widget.TabHost.OnTabChangeListener;  
  7.   
  8. public class MyTab extends TabActivity implements OnTabChangeListener {  
  9.   
  10.     private TabHost myTabhost;  
  11.       
  12.       
  13.     @Override  
  14.     protected void onCreate(Bundle savedInstanceState) {  
  15.         // TODO Auto-generated method stub  
  16.         super.onCreate(savedInstanceState);  
  17.         myTabhost = this.getTabHost();  
  18.         // get Tabhost  
  19.         LayoutInflater.from(this).inflate(R.layout.main,  
  20.                 myTabhost.getTabContentView(), true);  
  21.         myTabhost.setBackgroundColor(Color.argb(1502270150));  
  22.   
  23.         myTabhost.addTab(myTabhost.newTabSpec("One")// make a new Tab  
  24.                 .setIndicator("查询信息", getResources().getDrawable(R.drawable.gimp))  
  25.                 // set the Title and Icon  
  26.                 .setContent(R.id.widget_layout_Blue));  
  27.         // set the layout  
  28.   
  29.         myTabhost.addTab(myTabhost  
  30.                 .newTabSpec("Two")  
  31.                 // make a new Tab  
  32.                 .setIndicator("签到",  
  33.                         getResources().getDrawable(R.drawable.mumule))  
  34.                 // set the Title and Icon  
  35.                 .setContent(R.id.widget_layout_green));  
  36.   
  37.     }  
  38.   
  39.       
  40.   
  41.     @Override  
  42.     public void onTabChanged(String tagString) {  
  43.         // TODO Auto-generated method stub  
  44.           
  45.           
  46.     }  
  47.   
  48. }  



 

 

 

下面我就如何 改变Tab标签大小及间距作出说明:

我在网上查阅文档,如果要改变此大小或者间距,必须将标签栏宽高设为 wrapContent(其他的我尚未验证):以下为修改代码及其效果:

 

 

  1. import android.app.TabActivity;  
  2. import android.graphics.Color;  
  3. import android.os.Bundle;  
  4. import android.view.LayoutInflater;  
  5. import android.view.View;  
  6. import android.view.ViewGroup.LayoutParams;  
  7. import android.widget.LinearLayout;  
  8. import android.widget.TabHost;  
  9. import android.widget.TabWidget;  
  10. import android.widget.TabHost.OnTabChangeListener;  
  11.   
  12. public class MyTab extends TabActivity implements OnTabChangeListener {  
  13.   
  14.     private TabHost myTabhost;  
  15.       
  16.       
  17.     @Override  
  18.     protected void onCreate(Bundle savedInstanceState) {  
  19.         // TODO Auto-generated method stub  
  20.         super.onCreate(savedInstanceState);  
  21.         myTabhost = this.getTabHost();  
  22.         // get Tabhost  
  23.         LayoutInflater.from(this).inflate(R.layout.main,  
  24.                 myTabhost.getTabContentView(), true);  
  25.         myTabhost.setBackgroundColor(Color.argb(1502270150));  
  26.   
  27.         myTabhost.addTab(myTabhost.newTabSpec("One")// make a new Tab  
  28.                 .setIndicator("查询信息", getResources().getDrawable(R.drawable.gimp))  
  29.                 // set the Title and Icon  
  30.                 .setContent(R.id.widget_layout_Blue));  
  31.         // set the layout  
  32.   
  33.         myTabhost.addTab(myTabhost  
  34.                 .newTabSpec("Two")  
  35.                 // make a new Tab  
  36.                 .setIndicator("签到",  
  37.                         getResources().getDrawable(R.drawable.mumule))  
  38.                 // set the Title and Icon  
  39.                 .setContent(R.id.widget_layout_green));  
  40.   
  41.         // 首先得到标签栏  
  42.         TabWidget tabWidget = myTabhost.getTabWidget();  
  43.         //设置标签栏宽高为 WRAP_CONTENT  
  44.         LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);  
  45.         tabWidget.setLayoutParams(params);  
  46.         int count = tabWidget.getChildCount();  
  47.         //得到每一个标签,并设置其宽高  
  48.          for (int i = 0; i < count; i++) {  
  49.                View view = tabWidget.getChildTabViewAt(i);     
  50.                view.getLayoutParams().height = 50//tabWidget.getChildAt(i)  
  51.                view.getLayoutParams().width = 80;  
  52.               }  
  53.   
  54.     }  
  55.   
  56.       
  57.   
  58.     @Override  
  59.     public void onTabChanged(String tagString) {  
  60.         // TODO Auto-generated method stub  
  61.           
  62.           
  63.     }  
  64.   
  65. }  



 

原文地址:https://www.cnblogs.com/firecode/p/2788684.html