zoukankan      html  css  js  c++  java
  • 几种tabhost的总结(1)

    一,利用tabwidget切换的

    效果如图

    一。布局 main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:background="@android:color/white" >
    
        <TabHost android:id="@android:id/tabhost"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" 
        android:layout_marginTop="2dip">
    
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" >
           <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_weight="0.0"
                android:background="@drawable/bg_tab" 
                android:paddingLeft="15dip"
                android:paddingRight="15dip"
                android:paddingBottom="2dip"/>
    
        <FrameLayout
                android:id="@android:id/tabcontent"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1.0"
                android:gravity="center"
                android:fadingEdge="none"></FrameLayout>
              
           
        </LinearLayout>
    
    </TabHost>
    
    </LinearLayout>

    二。MainActivity

    package com.ct.tab;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import android.app.TabActivity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.ImageButton;
    import android.widget.TabHost;
    import android.widget.TabHost.OnTabChangeListener;
    import android.widget.TabWidget;
    
    public class MainActivity extends TabActivity implements
        OnTabChangeListener {
        /** Called when the activity is first created. */
        /**
         * 主界面的tabhost
         */
        private TabHost mTabHost;
    
        /**
         * tab页的TabWidget
         */
        private TabWidget mTabWidget;
    
        /**
         * 用来保存菜单中子view的容器
         */
        List<View> list = new ArrayList<View>();
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            initView();
        }
        
        private void initView(){
            mTabHost = (TabHost) findViewById(android.R.id.tabhost);
            mTabWidget = (TabWidget) findViewById(android.R.id.tabs);
            mTabHost.setOnTabChangedListener(this);
            setIndicators();
        }
        
        private void setIndicators(){
            //好友列表
            setIndicator(R.drawable.icon_buddy_on, 0, new Intent(
                    this, BuddyListActivity.class));
            
            //
            setIndicator(R.drawable.icon_group, 1, new Intent(this,
                    GroupChatActivity.class));
            //最近会话
            setIndicator(R.drawable.icon_recent, 2, new Intent(this,
                    RecentTalkActivity.class));
    
            //消息推送
            setIndicator(R.drawable.icon_new, 3, new Intent(this,
                    NewFuncActivity.class));
        }
        
        private void setIndicator(int icon,int tabId,Intent intent){
            ImageButton imageButton = new ImageButton(this.mTabHost.getContext());
            imageButton.setImageResource(icon);
            if(tabId == 0){
                imageButton.setBackgroundResource(R.drawable.bg_selected);
            }else {
                imageButton.setBackgroundResource(0);
            }
            String str = String.valueOf(tabId);
            TabHost.TabSpec localTabSpec = mTabHost.newTabSpec(str).setIndicator(
                    imageButton).setContent(intent);
            
            //加载tabSpec
            mTabHost.addTab(localTabSpec);
            //保存tab菜单中子菜单
            list.add(imageButton);
        }
    
        @Override
        public void onTabChanged(String tabId) {
            // TODO Auto-generated method stub
    int tabID = Integer.valueOf(tabId);
            
            // TODO Auto-generated method stub
            
            for (int i = 0; i < mTabWidget.getChildCount(); i++)
            {
                if (i == tabID)
                {
                    Log.i("", "" + mTabWidget.getChildAt(Integer.valueOf(i)));
                    
                    if (list.size() != 0)
                    {
                        if (i == 0)
                        {
                            
                            ((ImageButton)list.get(i)).setImageResource(R.drawable.icon_buddy_on);
                            
                            ((ImageButton)list.get(i)).setBackgroundResource(R.drawable.bg_selected);
                        }
                        else if (i == 1)
                        {
                            ((ImageButton)list.get(i)).setImageResource(R.drawable.icon_group_on);
                            
                            ((ImageButton)list.get(i)).setBackgroundResource(R.drawable.bg_selected);
                        }
                        else if (i == 2)
                        {
                            
                            ((ImageButton)list.get(i)).setImageResource(R.drawable.icon_recent_on);
                            
                            ((ImageButton)list.get(i)).setBackgroundResource(R.drawable.bg_selected);
    
                        }
                        else if (i == 3)
                        {
                            ((ImageButton)list.get(i)).setImageResource(R.drawable.icon_new_on);
                            
                            ((ImageButton)list.get(i)).setBackgroundResource(R.drawable.bg_selected);
    
                        }
    
                    }
    
                }
                else
                {
    
                    mTabWidget.getChildAt(Integer.valueOf(i))
                            .setBackgroundDrawable(null);
                    if (list.size() != 0)
                    {
                        if (i == 0 && i != tabID)
                        {
                            ((ImageButton)list.get(i)).setImageResource(R.drawable.icon_buddy);
                            
                            ((ImageButton)list.get(i)).setBackgroundResource(0);
                        }
                        else if (i == 1 && i != tabID)
                        {
                            ((ImageButton)list.get(i)).setImageResource(R.drawable.icon_group);
                            
                            ((ImageButton)list.get(i)).setBackgroundResource(0);
                        }
                        else if (i == 2 && i != tabID)
                        {
                            ((ImageButton)list.get(i)).setImageResource(R.drawable.icon_recent);
                            
                            ((ImageButton)list.get(i)).setBackgroundResource(0);
                        }
    
                        else if (i == 3 && i != tabID)
                        {
                            ((ImageButton)list.get(i)).setImageResource(R.drawable.icon_new);
                            
                            ((ImageButton)list.get(i)).setBackgroundResource(0);
                        }
    
                    }
                }
    
            }
        }
    }

     (在F:\java\MyTabHost1)

  • 相关阅读:
    还原 | revert (Cascading & Inheritance)
    过滤器 | filter (Filter Effects)
    过渡时间 | transition-duration (Animations & Transitions)
    过渡延时 | transition-delay (Animations & Transitions)
    过渡属性 | transition-property (Animations & Transitions)
    过渡定时功能 | transition-timing-function (Animations & Transitions)
    过渡 | transition (Animations & Transitions)
    ProxySQL 读写分离
    《抛弃learning rate decay吧!》
    《Tensorflow 中 learning rate decay 的奇技淫巧 》
  • 原文地址:https://www.cnblogs.com/ct732003684/p/2848963.html
Copyright © 2011-2022 走看看