首页 > 代码库 > Android下实现tab页个人比较推崇的方法

Android下实现tab页个人比较推崇的方法

 

使用fragment实现tab页的效果:

 

device-2014-07-15-173125

 

 

device-2014-07-15-173149

 

 

 

device-2014-07-15-173157

 

 

三个页面是单独的三个Fragment

 

主Activity的实现:

 

package com.hsx.tab;import android.os.Bundle;import android.support.v4.app.FragmentActivity;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentTransaction;import android.view.View;import android.widget.ImageButton;public class MainActivity extends FragmentActivity {    protected static final String TAG = "MainActivity";    private View currentButton;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initComponents();    }    private void initComponents() {        ImageButton btn_one = (ImageButton) findViewById(R.id.buttom_one);        ImageButton btn_two = (ImageButton) findViewById(R.id.buttom_two);        ImageButton btn_three = (ImageButton) findViewById(R.id.buttom_three);        btn_one.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                FragmentManager fm = getSupportFragmentManager();                FragmentTransaction ft = fm.beginTransaction();                Fragment_One fragment_one = new Fragment_One();                ft.replace(R.id.fl_content, fragment_one, MainActivity.TAG);                ft.commit();                setButton(v);            }        });        btn_two.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                FragmentManager fm = getSupportFragmentManager();                FragmentTransaction ft = fm.beginTransaction();                Fragment_Two fragment_two = new Fragment_Two();                ft.replace(R.id.fl_content, fragment_two, MainActivity.TAG);                ft.commit();                setButton(v);            }        });        btn_three.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                FragmentManager fm = getSupportFragmentManager();                FragmentTransaction ft = fm.beginTransaction();                Fragment_Three fragment_three = new Fragment_Three();                ft.replace(R.id.fl_content, fragment_three, MainActivity.TAG);                ft.commit();                setButton(v);            }        });        /**         * 默认第一个按钮点击         */        btn_one.performClick();    }    /**     * 设置按钮的背景图片     *     * @param v     */    private void setButton(View v) {        if (currentButton != null && currentButton.getId() != v.getId()) {            currentButton.setEnabled(true);        }        v.setEnabled(false);        currentButton = v;    }}

 

xml的代码

 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent">    <LinearLayout        android:id="@+id/buttom_bar_group"        android:layout_width="match_parent"        android:layout_height="60dp"        android:layout_alignParentBottom="true"        android:gravity="center_vertical"        android:orientation="horizontal">        <RelativeLayout style="@style/ButtomBar">            <ImageButton                android:id="@+id/buttom_one"                style="@style/ButtomBarImgBtn"                android:background="@drawable/bar_news"                android:contentDescription="@string/app_name" />        </RelativeLayout>        <RelativeLayout style="@style/ButtomBar">            <ImageButton                android:id="@+id/buttom_two"                style="@style/ButtomBarImgBtn"                android:background="@drawable/bar_constact"                android:contentDescription="@string/app_name" />        </RelativeLayout>        <RelativeLayout style="@style/ButtomBar">            <ImageButton                android:id="@+id/buttom_three"                style="@style/ButtomBarImgBtn"                android:background="@drawable/bar_deynaimic"                android:contentDescription="@string/app_name" />        </RelativeLayout>    </LinearLayout>    <View        android:id="@+id/line"        android:layout_width="match_parent"        android:layout_height="0.5dp"        android:layout_above="@id/buttom_bar_group"        android:background="@color/devide_line" />    <FrameLayout        android:id="@+id/fl_content"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_above="@id/line" /></RelativeLayout>

 

 

 

demo下载地址:http://files.cnblogs.com/hsx514/Test_Fragment.zip