当前位置:操作系统 > 安卓/Android >>

简单解决android tabhost 有的版本,视图重叠问题

[java]
package com.anyjoys.view.component; 
 
import android.app.TabActivity; 
import android.content.Intent; 
import android.graphics.drawable.Drawable; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.FrameLayout; 
import android.widget.ImageView; 
import android.widget.TabHost; 
import android.widget.TabHost.OnTabChangeListener; 
import android.widget.TabWidget; 
import android.widget.TextView; 
 
import com.anyjoys.R; 
 
/**
 * Tab布局基类包括(底部菜单和顶部菜单的管理)
 * 
 * @author summer
 * 
 */ 
public class TabLayoutActivity extends TabActivity { 
 
    private TabHost mTabHost; 
    private TextView textview_unread; 
    private View lastView; //记录上次显示视图  
    public TabHost getmTabHost() { 
        return mTabHost; 
    } 
 
    private View view1; 
 
    public View getView1() { 
        return view1; 
    } 
 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.tabhost); 
        this.mTabHost = (TabHost)findViewById(android.R.id.tabhost); 
        this.mTabHost.setOnTabChangedListener(new OnTabChangeListener() { 
             
            @Override 
            public void onTabChanged(String tabId) { 
                if( lastView!=null) 
                    lastView.setVisibility(View.GONE); 
                FrameLayout  frameLayout=mTabHost.getTabContentView(); 
                frameLayout.setVisibility(View.VISIBLE); 
                lastView = frameLayout; 
            } 
        }); 
    } 
    /**
     * 填充底部菜单 注意所有参数一一对应
     * 
     * @param menu_id
     *            预先设置菜单ID
     * @param top_icon_resid
     *            菜单图标资源文件数组
     * @param str_resid
     *            菜单文字资源文件数组
     * @param intent
     *            定义意图
     */ 
    public void setBottomMenuAndIntent(int[] menu_id, int[] top_icon_resid, 
            int[] str_resid, Intent[] intent) { 
 
        if (null != mTabHost) { 
            for (int j = 0; j < menu_id.length; j++) { 
                 view1 = View.inflate(TabLayoutActivity.this, R.layout.tab, 
                         null);// 菜单按钮布局文件  
                ((ImageView) view1.findViewById(R.id.tab_imageview_icon)) 
                        .setImageResource(top_icon_resid[j]); 
                ((TextView) view1.findViewById(R.id.tab_textview_title)) 
                        .setText(str_resid[j]); 
                 
                view1.setBackgroundResource(R.drawable.bottom_btn_bg); 
                 
                /* 初始化意图 */ 
                mTabHost.addTab(buildTabSpec(menu_id[j] + "", view1, 
                        intent[j])); 
            } 
        } 
    } 
 
    /**
     * 是否隐藏底部
     * 
     * @param isvisibility
     */ 
    public void hideBottomMenu(boolean isvisibility) { 
        if (isvisibility) { 
            this.mTabHost.getTabWidget().setVisibility(View.GONE); 
        } else { 
            this.mTabHost.getTabWidget().setVisibility(View.VISIBLE); 
        } 
    } 
   /**
    * 设置底部背景图片
    */ 
    public void setTabBackground(int bg_resid){ 
        this.mTabHost.getTabWidget().setBackgroundResource(bg_resid); 
    } 
    /**
     * 初始化tab
     * 
     * @param tag
     * @param view
     * @param content
     * @return
     */ 
 &nbs

补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,