zoukankan      html  css  js  c++  java
  • 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. }  



     

  • 相关阅读:
    [LeetCode] 134. Gas Station Java
    [LeetCode] 22. Best Time to Buy and Sell Stock II Java
    [LeetCode] 55. Jump Game Java
    [LeetCode] 264. Ugly Number II Java
    [LeetCode] 331. Verify Preorder Serialization of a Binary Tree Java
    [LeetCode] 232. Implement Queue using Stacks Java
    java.lang.ClassNotFoundException: org.apache.juli.logging.LogFactory的解决办法
    Linux centos 连接网络
    MyEclipse默认编码为GBK,修改为UTF8的方法
    表单
  • 原文地址:https://www.cnblogs.com/firecode/p/2788684.html
Copyright © 2011-2022 走看看