Fragment、FragmentTabHost以及RadioGroup框架

package com.dotfive.chuanbang.activity;



import test.Fragment1;

import test.Fragment1.OnBackListener;

import test.Fragment2;

import test.Fragment3;

import test.Fragment4;

import android.os.Bundle;

import android.support.v4.app.FragmentActivity;

import android.util.Log;

import android.view.LayoutInflater;

import android.view.View;

import android.widget.ImageView;

import android.widget.TabHost.OnTabChangeListener;

import android.widget.TabHost.TabSpec;

import android.widget.TextView;

import android.widget.Toast;



import com.dotfive.chuanbang.R;

//定义FragmentTabHost对象

//定义一个布局

//定义数组来存放Fragment界面

//定义数组来存放按钮图片

//Tab选项卡的文字

import com.dotfive.chuanbang.layout.SaveFragmentTabHost;



/**

     * 在这里获取到每个需要用到的控件的实例,并给它们设置好必要的点击事件。

     */

//实例化布局对象

//实例化TabHost对象,得到TabHost

//得到fragment的个数

//为每一个Tab按钮设置图标、文字和内容

//将Tab按钮添加进Tab选项卡中

//设置Tab按钮的背景

/**

     * 给Tab按钮设置图标和文字

     */

public class FragmentTabsActivity extends FragmentActivity {



    //定义FragmentTabHost对象

    private SaveFragmentTabHost mTabHost;



    //定义一个布局

    private LayoutInflater layoutInflater;



//    private RadioGroup mTabRg;



    //定义数组来存放Fragment界面

    private final Class[] fragmentArray = { Fragment1.class, Fragment2.class, Fragment3.class, Fragment4.class };



    //定义数组来存放按钮图片

    private int mImageViewArray[] = { R.drawable.selector_tab, R.drawable.selector_tab, R.drawable.selector_tab, R.drawable.selector_tab,

            R.drawable.selector_tab };



    //Tab选项卡的文字

    private String mTextviewArray[] = { "首页", "消息", "好友", "广场", "更多" };



    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        initViews();

    }



    /**

     * 在这里获取到每个需要用到的控件的实例,并给它们设置好必要的点击事件。

     */

    private void initViews() {

        //实例化布局对象

        layoutInflater = LayoutInflater.from(this);



        //实例化TabHost对象,得到TabHost

        mTabHost = (SaveFragmentTabHost) findViewById(android.R.id.tabhost);

        mTabHost.setOnTabChangedListener(new OnTabChangeListener() {



            @Override

            public void onTabChanged(String arg0) {

                Log.e("X", "++++++++++++++" + arg0);

            }

        });

        mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);

        // 得到fragment的个数

        int count = fragmentArray.length;

        for (int i = 0; i < count; i++) {

            // 为每一个Tab按钮设置图标、文字和内容

//            TabSpec tabSpec = mTabHost.newTabSpec(i + "").setIndicator(i + "");

//            TabSpec tabSpec = mTabHost.newTabSpec(mTextviewArray[i]).setIndicator(i + "");

                        TabSpec tabSpec = mTabHost.newTabSpec(mTextviewArray[i]).setIndicator(getTabItemView(i));

            //将Tab按钮添加进Tab选项卡中

            mTabHost.addTab(tabSpec, fragmentArray[i], null);

            //设置Tab按钮的背景

                        mTabHost.getTabWidget().getChildAt(i).setBackgroundResource(R.drawable.selector_tab);

        }



//        mTabRg = (RadioGroup) findViewById(R.id.tab_rg_menu);

//        mTabRg.setOnCheckedChangeListener(new OnCheckedChangeListener() {

//            @Override

//            public void onCheckedChanged(RadioGroup group, int checkedId) {

//                switch (checkedId) {

//                case R.id.tab_rb_1:

//                    mTabHost.setCurrentTab(0);

//                    break;

//                case R.id.tab_rb_2:

//                    mTabHost.setCurrentTab(1);

//                    break;

//                case R.id.tab_rb_3:

//                    mTabHost.setCurrentTab(2);

//                    break;

//                case R.id.tab_rb_4:

//                    mTabHost.setCurrentTab(3);

//                    break;

//                default:

//                    break;

//                }

//            }

//        });

//        mTabHost.setCurrentTab(0);

    }

/**

         * 给Tab按钮设置图标和文字

         */

        private View getTabItemView(int index) {

    

            View view = layoutInflater.inflate(R.layout.tab_item_view, null);

    

            ImageView imageView = (ImageView) view.findViewById(R.id.imageview);

            imageView.setImageResource(mImageViewArray[index]);

    

            TextView textView = (TextView) view.findViewById(R.id.textview);

            textView.setText(mTextviewArray[index]);

    

            return view;

        }



}

保存Fragment状态的TabHost

/*

 * Copyright (C) 2012 The Android Open Source Project

 *

 * Licensed under the Apache License, Version 2.0 (the "License");

 * you may not use this file except in compliance with the License.

 * You may obtain a copy of the License at

 *

 *      http://www.apache.org/licenses/LICENSE-2.0

 *

 * Unless required by applicable law or agreed to in writing, software

 * distributed under the License is distributed on an "AS IS" BASIS,

 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

 * See the License for the specific language governing permissions and

 * limitations under the License.

 */



package com.dotfive.chuanbang.layout;



import java.util.ArrayList;



import android.content.Context;

import android.content.res.TypedArray;

import android.os.Bundle;

import android.os.Parcel;

import android.os.Parcelable;

import android.support.v4.app.Fragment;

import android.support.v4.app.FragmentManager;

import android.support.v4.app.FragmentTransaction;

import android.util.AttributeSet;

import android.view.View;

import android.view.ViewGroup;

import android.widget.FrameLayout;

import android.widget.LinearLayout;

import android.widget.TabHost;

import android.widget.TabWidget;



/**

 * Special TabHost that allows the use of {@link Fragment} objects for its tab

 * content. When placing this in a view hierarchy, after inflating the hierarchy

 * you must call {@link #setup(Context, FragmentManager, int)} to complete the

 * initialization of the tab host.

 * 

 * <p>

 * Here is a simple example of using a FragmentTabHost in an Activity:

 * 

 * {@sample

 * development/samples/Support4Demos/src/com/example/android/supportv4/app/

 * FragmentTabs.java complete}

 * 

 * <p>

 * This can also be used inside of a fragment through fragment nesting:

 * 

 * {@sample

 * development/samples/Support4Demos/src/com/example/android/supportv4/app/

 * FragmentTabsFragmentSupport.java complete}

 */

public class SaveFragmentTabHost extends TabHost implements TabHost.OnTabChangeListener {

    private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>();

    private FrameLayout mRealTabContent;

    private Context mContext;

    private FragmentManager mFragmentManager;

    private int mContainerId;

    private TabHost.OnTabChangeListener mOnTabChangeListener;

    private TabInfo mLastTab;

    private boolean mAttached;



    static final class TabInfo {

        private final String tag;

        private final Class<?> clss;

        private final Bundle args;

        private Fragment fragment;



        TabInfo(String _tag, Class<?> _class, Bundle _args) {

            tag = _tag;

            clss = _class;

            args = _args;

        }

    }



    static class DummyTabFactory implements TabHost.TabContentFactory {

        private final Context mContext;



        public DummyTabFactory(Context context) {

            mContext = context;

        }



        @Override

        public View createTabContent(String tag) {

            View v = new View(mContext);

            v.setMinimumWidth(0);

            v.setMinimumHeight(0);

            return v;

        }

    }



    static class SavedState extends BaseSavedState {

        String curTab;



        SavedState(Parcelable superState) {

            super(superState);

        }



        private SavedState(Parcel in) {

            super(in);

            curTab = in.readString();

        }



        @Override

        public void writeToParcel(Parcel out, int flags) {

            super.writeToParcel(out, flags);

            out.writeString(curTab);

        }



        @Override

        public String toString() {

            return "FragmentTabHost.SavedState{" + Integer.toHexString(System.identityHashCode(this)) + " curTab=" + curTab + "}";

        }



        public static final Parcelable.Creator<SavedState> CREATOR = new Parcelable.Creator<SavedState>() {

            public SavedState createFromParcel(Parcel in) {

                return new SavedState(in);

            }



            public SavedState[] newArray(int size) {

                return new SavedState[size];

            }

        };

    }



    public SaveFragmentTabHost(Context context) {

        // Note that we call through to the version that takes an AttributeSet,

        // because the simple Context construct can result in a broken object!

        super(context, null);

        initFragmentTabHost(context, null);

    }



    public SaveFragmentTabHost(Context context, AttributeSet attrs) {

        super(context, attrs);

        initFragmentTabHost(context, attrs);

    }



    private void initFragmentTabHost(Context context, AttributeSet attrs) {

        TypedArray a = context.obtainStyledAttributes(attrs, new int[] { android.R.attr.inflatedId }, 0, 0);

        mContainerId = a.getResourceId(0, 0);

        a.recycle();



        super.setOnTabChangedListener(this);

    }



    private void ensureHierarchy(Context context) {

        // If owner hasn't made its own view hierarchy, then as a convenience

        // we will construct a standard one here.

        if (findViewById(android.R.id.tabs) == null) {

            LinearLayout ll = new LinearLayout(context);

            ll.setOrientation(LinearLayout.VERTICAL);

            addView(ll, new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));



            TabWidget tw = new TabWidget(context);

            tw.setId(android.R.id.tabs);

            tw.setOrientation(TabWidget.HORIZONTAL);

            ll.addView(tw, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, 0));



            FrameLayout fl = new FrameLayout(context);

            fl.setId(android.R.id.tabcontent);

            ll.addView(fl, new LinearLayout.LayoutParams(0, 0, 0));



            mRealTabContent = fl = new FrameLayout(context);

            mRealTabContent.setId(mContainerId);

            ll.addView(fl, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 0, 1));

        }

    }



    /**

     * @deprecated Don't call the original TabHost setup, you must instead call

     *             {@link #setup(Context, FragmentManager)} or

     *             {@link #setup(Context, FragmentManager, int)}.

     */

    @Override

    @Deprecated

    public void setup() {

        throw new IllegalStateException("Must call setup() that takes a Context and FragmentManager");

    }



    public void setup(Context context, FragmentManager manager) {

        ensureHierarchy(context); // Ensure views required by super.setup()

        super.setup();

        mContext = context;

        mFragmentManager = manager;

        ensureContent();

    }



    public void setup(Context context, FragmentManager manager, int containerId) {

        ensureHierarchy(context); // Ensure views required by super.setup()

        super.setup();

        mContext = context;

        mFragmentManager = manager;

        mContainerId = containerId;

        ensureContent();

        mRealTabContent.setId(containerId);



        // We must have an ID to be able to save/restore our state. If

        // the owner hasn't set one at this point, we will set it ourself.

        if (getId() == View.NO_ID) {

            setId(android.R.id.tabhost);

        }

    }



    private void ensureContent() {

        if (mRealTabContent == null) {

            mRealTabContent = (FrameLayout) findViewById(mContainerId);

            if (mRealTabContent == null) {

                throw new IllegalStateException("No tab content FrameLayout found for id " + mContainerId);

            }

        }

    }



    @Override

    public void setOnTabChangedListener(OnTabChangeListener l) {

        mOnTabChangeListener = l;

    }



    public void addTab(TabHost.TabSpec tabSpec, Class<?> clss, Bundle args) {

        tabSpec.setContent(new DummyTabFactory(mContext));

        String tag = tabSpec.getTag();



        TabInfo info = new TabInfo(tag, clss, args);



        if (mAttached) {

            // If we are already attached to the window, then check to make

            // sure this tab's fragment is inactive if it exists. This shouldn't

            // normally happen.

            info.fragment = mFragmentManager.findFragmentByTag(tag);

            if (info.fragment != null && !info.fragment.isDetached()) {

                FragmentTransaction ft = mFragmentManager.beginTransaction();

                //                ft.detach(info.fragment);

                ft.hide(info.fragment);

                ft.commit();

            }

        }



        mTabs.add(info);

        addTab(tabSpec);

    }



    @Override

    protected void onAttachedToWindow() {

        super.onAttachedToWindow();



        String currentTab = getCurrentTabTag();



        // Go through all tabs and make sure their fragments match

        // the correct state.

        FragmentTransaction ft = null;

        for (int i = 0; i < mTabs.size(); i++) {

            TabInfo tab = mTabs.get(i);

            tab.fragment = mFragmentManager.findFragmentByTag(tab.tag);

            //            if (tab.fragment != null && !tab.fragment.isDetached()) {

            if (tab.fragment != null) {

                if (tab.tag.equals(currentTab)) {

                    // The fragment for this tab is already there and

                    // active, and it is what we really want to have

                    // as the current tab. Nothing to do.

                    mLastTab = tab;

                } else {

                    // This fragment was restored in the active state,

                    // but is not the current tab. Deactivate it.

                    if (ft == null) {

                        ft = mFragmentManager.beginTransaction();

                    }

                    //                    ft.detach(tab.fragment);

                    ft.hide(tab.fragment);

                }

            }

        }



        // We are now ready to go. Make sure we are switched to the

        // correct tab.

        mAttached = true;

        ft = doTabChanged(currentTab, ft);

        if (ft != null) {

            ft.commit();

            mFragmentManager.executePendingTransactions();

        }

    }



    @Override

    protected void onDetachedFromWindow() {

        super.onDetachedFromWindow();

        mAttached = false;

    }



    @Override

    protected Parcelable onSaveInstanceState() {

        Parcelable superState = super.onSaveInstanceState();

        SavedState ss = new SavedState(superState);

        ss.curTab = getCurrentTabTag();

        return ss;

    }



    @Override

    protected void onRestoreInstanceState(Parcelable state) {

        SavedState ss = (SavedState) state;

        super.onRestoreInstanceState(ss.getSuperState());

        setCurrentTabByTag(ss.curTab);

    }



    @Override

    public void onTabChanged(String tabId) {

        if (mAttached) {

            FragmentTransaction ft = doTabChanged(tabId, null);

            if (ft != null) {

                ft.commit();

            }

        }

        if (mOnTabChangeListener != null) {

            mOnTabChangeListener.onTabChanged(tabId);

        }

    }



    private FragmentTransaction doTabChanged(String tabId, FragmentTransaction ft) {

        TabInfo newTab = null;

        for (int i = 0; i < mTabs.size(); i++) {

            TabInfo tab = mTabs.get(i);

            if (tab.tag.equals(tabId)) {

                newTab = tab;

            }

        }

        if (newTab == null) {

            throw new IllegalStateException("No tab known for tag " + tabId);

        }

        if (mLastTab != newTab) {

            if (ft == null) {

                ft = mFragmentManager.beginTransaction();

            }

            if (mLastTab != null) {

                if (mLastTab.fragment != null) {

                    //                    ft.detach(mLastTab.fragment);

                    ft.hide(mLastTab.fragment);

                }

            }

            if (newTab != null) {

                if (newTab.fragment == null) {

                    newTab.fragment = Fragment.instantiate(mContext, newTab.clss.getName(), newTab.args);

                    ft.add(mContainerId, newTab.fragment, newTab.tag);

                } else {

                    //                    ft.attach(newTab.fragment);

                    ft.show(newTab.fragment);

                }

            }



            mLastTab = newTab;

        }

        return ft;

    }

}

用RadioGroup、LinearLayout、以及FragmentTabHost 创建button操作栏

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical" >



    <FrameLayout

        android:id="@+id/realtabcontent"

        android:layout_width="match_parent"

        android:layout_height="0dp"

        android:layout_weight="1" />



<!--     <RelativeLayout -->

<!--         android:layout_width="match_parent" -->

<!--         android:layout_height="wrap_content" -->

<!--         android:background="@color/black" > -->



<!--         <RadioGroup -->

<!--             android:id="@+id/tab_rg_menu" -->

<!--             android:layout_width="match_parent" -->

<!--             android:layout_height="wrap_content" -->

<!--             android:background="@drawable/selector_tab" -->

<!--             android:orientation="horizontal" > -->



<!--             <RadioButton -->

<!--                 android:id="@+id/tab_rb_1" -->

<!--                 style="@style/tab_rb_style" -->

<!--                 android:checked="true" -->

<!--                 android:drawableTop="@drawable/bt_search_close_pressed" -->

<!--                 android:text="微信" /> -->



<!--             <RadioButton -->

<!--                 android:id="@+id/tab_rb_2" -->

<!--                 style="@style/tab_rb_style" -->

<!--                 android:text="通讯录" /> -->



<!--             <RadioButton -->

<!--                 android:id="@+id/tab_rb_3" -->

<!--                 style="@style/tab_rb_style" -->

<!--                 android:text="发现" /> -->



<!--             <RadioButton -->

<!--                 android:id="@+id/tab_rb_4" -->

<!--                 style="@style/tab_rb_style" -->

<!--                 android:text="我" /> -->



<!--             <RadioButton -->

<!--                 android:id="@+id/tab_rb_5" -->

<!--                 style="@style/tab_rb_style" -->

<!--                 android:text="我" /> -->

<!--         </RadioGroup> -->



<!--         <LinearLayout -->

<!--             android:layout_width="match_parent" -->

<!--             android:layout_height="55dp" -->

<!--             android:baselineAligned="false" -->

<!--             android:orientation="horizontal" > -->



<!--             <LinearLayout -->

<!--                 android:id="@+id/home_layout" -->

<!--                 android:layout_width="0dp" -->

<!--                 android:layout_height="match_parent" -->

<!--                 android:layout_weight="1" -->

<!--                 android:gravity="center" -->

<!--                 android:orientation="vertical" > -->



<!--                 <TextView -->

<!--                     android:id="@+id/home_icon" -->

<!--                     android:layout_width="wrap_content" -->

<!--                     android:layout_height="wrap_content" -->

<!--                     android:text="@string/fontHome" -->

<!--                     android:textColor="@color/gray" /> -->



<!--                 <TextView -->

<!--                     android:id="@+id/home_text" -->

<!--                     android:layout_width="wrap_content" -->

<!--                     android:layout_height="wrap_content" -->

<!--                     android:text="@string/stringHome" -->

<!--                     android:textColor="@color/gray" -->

<!--                     android:textSize="15.0dp" /> -->

<!--             </LinearLayout> -->



<!--             <LinearLayout -->

<!--                 android:id="@+id/celebrity_layout" -->

<!--                 android:layout_width="0dp" -->

<!--                 android:layout_height="match_parent" -->

<!--                 android:layout_weight="1" -->

<!--                 android:gravity="center" -->

<!--                 android:orientation="vertical" > -->



<!--                 <TextView -->

<!--                     android:id="@+id/celebrity_icon" -->

<!--                     android:layout_width="wrap_content" -->

<!--                     android:layout_height="wrap_content" -->

<!--                     android:text="@string/fontCelebrity" -->

<!--                     android:textColor="@color/gray" /> -->



<!--                 <TextView -->

<!--                     android:id="@+id/celebrity_text" -->

<!--                     android:layout_width="wrap_content" -->

<!--                     android:layout_height="wrap_content" -->

<!--                     android:text="@string/stringCelebrity" -->

<!--                     android:textColor="@color/gray" /> -->

<!--             </LinearLayout> -->



<!--             <LinearLayout -->

<!--                 android:id="@+id/brand_layout" -->

<!--                 android:layout_width="0dp" -->

<!--                 android:layout_height="match_parent" -->

<!--                 android:layout_weight="1" -->

<!--                 android:gravity="center" -->

<!--                 android:orientation="vertical" > -->



<!--                 <TextView -->

<!--                     android:id="@+id/brand_icon" -->

<!--                     android:layout_width="wrap_content" -->

<!--                     android:layout_height="wrap_content" -->

<!--                     android:text="@string/fontBrand" -->

<!--                     android:textColor="@color/gray" /> -->



<!--                 <TextView -->

<!--                     android:id="@+id/brand_text" -->

<!--                     android:layout_width="wrap_content" -->

<!--                     android:layout_height="wrap_content" -->

<!--                     android:text="@string/stringBrand" -->

<!--                     android:textColor="@color/gray" -->

<!--                     android:textSize="15.0dp" /> -->

<!--             </LinearLayout> -->



<!--             <LinearLayout -->

<!--                 android:id="@+id/explore_layout" -->

<!--                 android:layout_width="0dp" -->

<!--                 android:layout_height="match_parent" -->

<!--                 android:layout_weight="1" -->

<!--                 android:gravity="center" -->

<!--                 android:orientation="vertical" > -->



<!--                 <TextView -->

<!--                     android:id="@+id/explore_icon" -->

<!--                     android:layout_width="wrap_content" -->

<!--                     android:layout_height="wrap_content" -->

<!--                     android:text="@string/fontExplore" -->

<!--                     android:textColor="@color/gray" /> -->



<!--                 <TextView -->

<!--                     android:id="@+id/explore_text" -->

<!--                     android:layout_width="wrap_content" -->

<!--                     android:layout_height="wrap_content" -->

<!--                     android:text="@string/stringExplore" -->

<!--                     android:textColor="@color/gray" -->

<!--                     android:textSize="15.0dp" /> -->

<!--             </LinearLayout> -->



<!--             <LinearLayout -->

<!--                 android:id="@+id/more_layout" -->

<!--                 android:layout_width="0dp" -->

<!--                 android:layout_height="match_parent" -->

<!--                 android:layout_weight="1" -->

<!--                 android:gravity="center" -->

<!--                 android:orientation="vertical" > -->



<!--                 <TextView -->

<!--                     android:id="@+id/more_icon" -->

<!--                     android:layout_width="wrap_content" -->

<!--                     android:layout_height="wrap_content" -->

<!--                     android:text="@string/fontMore" -->

<!--                     android:textColor="@color/gray" /> -->



<!--                 <TextView -->

<!--                     android:id="@+id/more_text" -->

<!--                     android:layout_width="wrap_content" -->

<!--                     android:layout_height="wrap_content" -->

<!--                     android:text="@string/stringMore" -->

<!--                     android:textColor="@color/gray" -->

<!--                     android:textSize="15.0dp" /> -->

<!--             </LinearLayout> -->

<!--         </LinearLayout> -->

<!--     </RelativeLayout> -->



    <com.dotfive.chuanbang.layout.SaveFragmentTabHost

        android:id="@android:id/tabhost"

        android:layout_width="match_parent"

        android:layout_height="wrap_content">



        <FrameLayout

            android:id="@android:id/tabcontent"

            android:layout_width="0dp"

            android:layout_height="0dp"

            android:layout_weight="0" />

    </com.dotfive.chuanbang.layout.SaveFragmentTabHost>



</LinearLayout>
    <!-- tabBar -->

    <style name="tab_rb_style">

        <item name="android:layout_width">0dp</item>

        <item name="android:layout_height">55dp</item>

        <item name="android:layout_weight">1</item>

        <item name="android:button">@null</item>

        <item name="android:textColor">@drawable/font_color_gray</item>

        <item name="android:textSize">15.0dp</item>

        <item name="android:gravity">center_horizontal|bottom</item>

        <item name="android:layout_gravity">bottom</item>

        <item name="android:background">@drawable/selector_tab</item>

    </style>

如果不需要背景色,就别加foucs

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">

   


<!-- <item android:drawable="@drawable/home_btn_bg" android:state_pressed="true"/> -->

    <item android:drawable="@drawable/home_btn_bg" android:state_selected="true"/>



</selector>

 itemView

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:gravity="center"

    android:orientation="vertical" >



    <ImageView

        android:id="@+id/imageview"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:focusable="false"

        android:padding="3dp" 

        android:src="@drawable/selector_tab">

    </ImageView>



    <TextView

        android:id="@+id/textview"       

        android:layout_width="wrap_content"

        android:layout_height="wrap_content" 

        android:text="首页"

        android:textSize="10sp"

        android:textColor="#ffffff">

    </TextView>



</LinearLayout>

 

你可能感兴趣的:(Fragment)