iPhone中標簽欄在底部的這種風格,現在網上都很流行,那麼在Android中該怎麼實現呢?網上看到幾篇文章,其中農民伯伯的一篇比較有參考價值,但方法不是太簡便。因為公司的項目也使用到這個技術,我研究後發現寫的也過於復雜,後來我就自己琢磨寫了一個Demo出來,這個是我看到的網上的最簡單的方式,下面直接貼代碼了。
1.主Activity
- package com.zhf.TabHostDemo;
- import android.app.ActivityGroup;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.LayoutInflater;
- import android.widget.ImageView;
- import android.widget.LinearLayout;
- import android.widget.TabHost;
- import android.widget.TabWidget;
- import android.widget.TextView;
- import android.widget.TabHost.TabSpec;
-
- public class TabHostDemoActivity extends ActivityGroup {
- private TabHost tabHost;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
-
- //加載底部Tab布局
- LinearLayout tab1=(LinearLayout)LayoutInflater.from(this).inflate(R.layout.action_item, null);
- ImageView icon1=(ImageView)tab1.findViewById(R.id.icon);
- icon1.setBackgroundResource(R.drawable.icon1);
- TextView title1=(TextView)tab1.findViewById(R.id.title);
- title1.setText("Activity1");
-
- LinearLayout tab2=(LinearLayout)LayoutInflater.from(this).inflate(R.layout.action_item, null);
- ImageView icon2=(ImageView)tab2.findViewById(R.id.icon);
- icon2.setBackgroundResource(R.drawable.icon2);
- TextView title2=(TextView)tab2.findViewById(R.id.title);
- title2.setText("Activity2");
-
- // 加載TabSpec
- tabHost = (TabHost) findViewById(R.id.view_tab_host);
- tabHost.setup(getLocalActivityManager());
-
- TabSpec ts1 = tabHost.newTabSpec("Activity1");
- ts1.setIndicator(tab1);//這句話就是設置每個小tab顯示的內容
- //第一個Activity
- ts1.setContent(new Intent(this, Activity1.class));
- tabHost.addTab(ts1);
-
- TabSpec ts2 = tabHost.newTabSpec("Activity2");
- ts2.setIndicator(tab2);
- //第二個Activity
- ts2.setContent(new Intent(this, Activity2.class));
- tabHost.addTab(ts2);
-
- //設置標簽欄背景圖片
- TabWidget tw = tabHost.getTabWidget();
- tw.setBackgroundResource(R.drawable.home_tab_bg);
- }
- }
2.主布局文件
- <?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" >
-
- <TabHost
- android:id="@+id/view_tab_host"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent" >
-
- <LinearLayout
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:gravity="center"
- android:orientation="vertical" >
-
- <FrameLayout
- android:id="@android:id/tabcontent"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_gravity="center_vertical"
- android:layout_weight="1"
- android:gravity="center_vertical" >
- </FrameLayout>
-
- <TabWidget
- android:id="@android:id/tabs"
- android:layout_width="fill_parent"
- android:layout_height="52dip"
- android:layout_weight="0">
- </TabWidget>
- </LinearLayout>
- </TabHost>
-
- </LinearLayout>