• TAB放置界面底部


    package com.TabTest2;
    import java.lang.reflect.Field;
    import android.app.Activity;
    import android.os.Build;
    import android.R;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.widget.TabHost;
    import android.widget.TabWidget;
    import android.widget.TextView;
    import android.widget.TabHost.OnTabChangeListener;

    public class TabTest2 extends Activity {
        
    public void onCreate(Bundle icicle) {   
            
    super.onCreate(icicle);   
            setContentView(com.TabTest2.R.layout.main);   
            
    final TabHost tabs=(TabHost)findViewById(com.TabTest2.R.id.tabhost);   
            
    final TabWidget tabWidget=(TabWidget) findViewById(R.id.tabs);
            
    int width =45;
            
    int height =48;
            Field mBottomLeftStrip;
            Field mBottomRightStrip;
            tabs.setup();   
               
              
               
            tabs.addTab(tabs.newTabSpec(
    "first tab")
                    .setIndicator(
    "news",getResources().getDrawable(com.TabTest2.R.drawable.c))
                    .setContent(com.TabTest2.R.id.tab1));
            tabs.addTab(tabs.newTabSpec(
    "second tab")
                    .setIndicator(
    "help",getResources().getDrawable(com.TabTest2.R.drawable.e))
                    .setContent(com.TabTest2.R.id.tab2));
            tabs.addTab(tabs.newTabSpec(
    "third tab")
                    .setIndicator(
    "setting",getResources().getDrawable(com.TabTest2.R.drawable.efg))
                    .setContent(com.TabTest2.R.id.tab2));
               
            tabs.setCurrentTab(
    0);  
            
            
            
    for (int i =0; i <tabWidget.getChildCount(); i++) {
                
    /**
                 * 设置高度、宽度,不过宽度由于设置为fill_parent,在此对它没效果
                 
    */
                tabWidget.getChildAt(i).getLayoutParams().height 
    = height;
                tabWidget.getChildAt(i).getLayoutParams().width 
    = width;


             
    /**
              * 设置tab中标题文字的颜色,不然默认为黑色
              
    */
              
    final TextView tv = (TextView) tabWidget.getChildAt(i).findViewById(android.R.id.title);

              tv.setTextColor(
    this.getResources().getColorStateList(android.R.color.white));




                
    /**
                 * 此方法是为了去掉系统默认的色白的底角
                 *
                 * 在 TabWidget中mBottomLeftStrip、mBottomRightStrip
                 * 都是私有变量,但是我们可以通过反射来获取
                 *
                 * 由于还不知道Android 2.2的接口是怎么样的,现在先加个判断好一些
                 
    */
          
    if (Float.valueOf(Build.VERSION.RELEASE) <= 2.1) {
                   
    try {
                      mBottomLeftStrip 
    = tabWidget.getClass().getDeclaredField ("mBottomLeftStrip");
                      mBottomRightStrip 
    = tabWidget.getClass().getDeclaredField ("mBottomRightStrip");
                      
    if(!mBottomLeftStrip.isAccessible()) {
                        mBottomLeftStrip.setAccessible(
    true);
                      }
                      
    if(!mBottomRightStrip.isAccessible()){
                        mBottomRightStrip.setAccessible(
    true);
                      }
                     mBottomLeftStrip.set(tabWidget, getResources().getDrawable (com.TabTest2.R.drawable.linee));
                     mBottomRightStrip.set(tabWidget, getResources().getDrawable (com.TabTest2.R.drawable.linee));

                   } 
    catch (Exception e) {
                     e.printStackTrace();
                   }
             } 
    else {
            
             }
            View vvv 
    = tabWidget.getChildAt(i);
      
    if(tabs.getCurrentTab()==i){
              vvv.setBackgroundDrawable(getResources().getDrawable(com.TabTest2.R.drawable.shine));
      }
      
    else {
              vvv.setBackgroundDrawable(getResources().getDrawable(com.TabTest2.R.drawable.seven));
      }

            }
            
            
    /**
             * 当点击tab选项卡的时候,更改当前的背景
             
    */
            tabs.setOnTabChangedListener(
    new OnTabChangeListener(){
       @Override
       
    public void onTabChanged(String tabId) {
        
    // TODO Auto-generated method stub
        for (int i =0; i < tabWidget.getChildCount(); i++) {
         View vvv 
    = tabWidget.getChildAt(i);
         
    if(tabs.getCurrentTab()==i){
                 vvv.setBackgroundDrawable(getResources().getDrawable(com.TabTest2.R.drawable.shine));
         }
         
    else {
                 vvv.setBackgroundDrawable(getResources().getDrawable(com.TabTest2.R.drawable.seven));
         }
        }
       }});

            
        }   


    }
    <?xml version="1.0" encoding="utf-8"?>  
    <LinearLayout  
        
    xmlns:android="http://schemas.android.com/apk/res/android"  
        android:orientation
    ="vertical"  
        android:layout_width
    ="fill_parent"  
        android:layout_height
    ="fill_parent">  
        
    <TabHost  
            
    android:id="@+id/tabhost"  
            android:layout_width
    ="fill_parent"  
            android:layout_height
    ="fill_parent">  
            
    <FrameLayout  
                
    android:id="@android:id/tabcontent"  
                android:layout_width
    ="fill_parent"  
                android:layout_height
    ="fill_parent"  
                android:paddingBottom
    ="62px">  
                
    <AnalogClock  
                    
    android:id="@+id/tab1"  
                    android:layout_width
    ="fill_parent"  
                    android:layout_height
    ="fill_parent"  
                    android:layout_centerHorizontal
    ="true" />  
                
    <Button  
                    
    android:id="@+id/tab2"  
                    android:layout_width
    ="fill_parent"  
                    android:layout_height
    ="fill_parent"  
                    android:text
    ="A semi-random button" />  
            
    </FrameLayout>  
            
    <RelativeLayout  
                
    android:layout_width="fill_parent"  
                android:layout_height
    ="fill_parent">  
                
    <TabWidget  
                    
    android:id="@android:id/tabs"  
                    android:layout_alignParentBottom
    ="true"  
                    android:layout_width
    ="fill_parent"  
                    android:layout_height
    ="60px" />  
            
    </RelativeLayout>  
        
    </TabHost>  
    </LinearLayout>  

  • 相关阅读:
    [多线程学习笔记]条件变量
    [多线程学习笔记]互斥量
    [多线程学习笔记]线程生命周期
    多定时器队列
    双向环形链表
    多目录,多可执行文件的Makfile的编写
    大工匠
    从零开始打造我的计算机系统【运行效果】
    从零开始打造我的计算机系统【交叉汇编器】
    C中的回调函数
  • 原文地址:https://www.cnblogs.com/tt_mc/p/1744502.html
Copyright © 2020-2023  润新知