安卓开发底部tab的实现-创新互联

1.MainActivity代码:

成都创新互联公司长期为1000+客户提供的网站建设服务,团队从业经验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的实现

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


名称栏目:安卓开发底部tab的实现-创新互联
标题网址:http://csdahua.cn/article/dcdhhp.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流