安卓开发底部tab的实现

1.MainActivity代码:

滁州网站制作公司哪家好,找成都创新互联!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。成都创新互联于2013年开始到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联

(也就是TabsFrame)

package com.example.frametabhost;

import com.example.function.WebGo;
import com.example.licaizhuanjia.MainActivity;
import com.example.licaizhuanjia.R;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTabHost;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.widget.ImageView;
import android.widget.TabHost.TabSpec;
import android.widget.TextView;

public class TabsFrame extends FragmentActivity {

     private FragmentTabHost fragmentTabHost;
     private String texts[] = { "开始", "好友", "群组", "更多" };
     private int p_w_picpathButton[] = { R.drawable.selector1,
             R.drawable.selector2,
             R.drawable.selector3,
             R.drawable.selector4};
     private Class fragmentArray[] = {Page1.class,
             Page2.class,
             Page3.class,
             Page4.class};  

     protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tabsframe);
    
            // 实例化tabhost
            fragmentTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
            fragmentTabHost.setup(this, getSupportFragmentManager(),R.id.maincontent);
    
             for (int i = 0; i < texts.length; i++) {
                TabSpec spec=fragmentTabHost.newTabSpec(texts[i]).setIndicator(getView(i));
                fragmentTabHost.addTab(spec, fragmentArray[i], null);
                 
                //设置背景(必须在addTab之后,由于需要子节点(底部菜单按钮)否则会出现空指针异常)
                fragmentTabHost.getTabWidget().getChildAt(i).setBackgroundResource(R.drawable.bgselector);
            //背景替换

}
      }
    private View getView(int i) {
         //取得布局实例
         View view=View.inflate(TabsFrame.this, R.layout.tabcontent, null);
         
         //取得布局对象
         ImageView p_w_picpathView=(ImageView) view.findViewById(R.id.p_w_picpath);
         TextView textView=(TextView) view.findViewById(R.id.text);
         
         //设置图标
         p_w_picpathView.setImageResource(p_w_picpathButton[i]);
         //设置标题
         textView.setText(texts[i]);
         return view;
    }
    public boolean onKeyDown(int KeyCode,KeyEvent Event){

            if(KeyCode==KeyEvent.KEYCODE_BACK){
               Intent intent=new Intent(TabsFrame.this,MainActivity.class);
           startActivity(intent);
           finish();
            }
        return true;
    }
 
 }
2. 然后是4个Page,代码都一样

public class Page1 extends Fragment{
         @Override
         public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
             return inflater.inflate(R.layout.page1, null);
         }
}

主要代码就是这些

然后是xml布局文件

3.在tabsframe里

      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:orientation="vertical" >
 
     
 
               android:id="@+id/maincontent"
         android:layout_width="fill_parent"
         android:layout_height="0dp"
         android:layout_weight="1" >
   
     
    
 
              android:id="@android:id/tabhost"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:background="@drawable/tab_bg" >
 
                     android:id="@android:id/tabcontent"
             android:layout_width="0dp"
             android:layout_height="0dp"
             android:layout_weight="0" >
        
   
 

4.tabcontent.xml里是底部标签栏的图标

      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:gravity="center_horizontal"
      android:orientation="vertical" >
 
                android:id="@+id/p_w_picpath"
         android:layout_height="wrap_content"
         android:layout_width="wrap_content"
         />
              android:id="@+id/text"
         android:padding="2dp"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:textColor="@android:color/white"
         />
 

5.在selector1,2,3,4里(写在drawable文件夹里)



   
   

6.在bgselector.xml里



    
    

7.4个page的xml(4个都一样的代码)。

      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:background="@drawable/tabframe1"
   >

                android:id="@+id/text"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_alignParentBottom="true"
          android:layout_centerHorizontal="true"
          android:layout_marginBottom="22dp"
          android:text="正在开发中。。。。。"
          android:textSize="20dp" />
 
 

代码截图:

安卓开发 底部tab的实现

安卓开发 底部tab的实现

安卓开发 底部tab的实现

安卓开发 底部tab的实现

需要源码就给我留言。

实现后的界面如下:

安卓开发 底部tab的实现

安卓开发 底部tab的实现

安卓开发 底部tab的实现

安卓开发 底部tab的实现


当前文章:安卓开发底部tab的实现
URL链接:http://pwwzsj.com/article/pippoj.html