首页 > 代码库 > Fragment 结合FragmentTabHost使用心得

Fragment 结合FragmentTabHost使用心得

FragmentTabHost我也不知道是什么,就是可用用来当新浪微博底部那个状态栏的工具。现在说下怎么使用

首先activity要继承FragmentActivity

例如

public class A extends FragmentActivity{

//定义FragmentTabhost

private FragmentTabhost tab;

private TextView text;

private String str[]={"短信","电话","黑白名单","设置"};

private int icon[]={R.drawable.ic_firewall_sms_desk_setting,R.drawable.firewall_tab_icon_phone,R.drawable.sync_register_icon,R.drawable.img1};

private Class fragments[]={Fragment1.class,Fragment2.class,Fragment3.class,Fragment5.class};



protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.harassment_intercepion);//主界面下面放出这个节目的XML文件

iniView();

}

}

=================================================================

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

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

   android:layout_width="match_parent"

   android:layout_height="match_parent"

   android:orientation="vertical"

   android:background="#333333"

   >

   <RelativeLayout

       android:layout_width="fill_parent"

   android:layout_height="fill_parent"


   android:id="@+id/up_frame"

       >


   <android.support.v4.app.FragmentTabHost   //这个是tabhost的组件

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

       android:layout_width="fill_parent"

       android:layout_height="wrap_content"

     android:layout_alignParentBottom="true"


       >


       <FrameLayout

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

           android:layout_width="0dp"

           android:layout_height="0dp"

           android:layout_weight="0" />            

   </android.support.v4.app.FragmentTabHost>


   </RelativeLayout>


</RelativeLayout>

==========================================================================

然后实例化组件

public void init()

tab=this.findById(android.R.id.tabhost);//实例化tabhost

//tabhost.setup 第一个参数是context,第二个是拿到父类,第三个是

tabhost.setup(this, getSupportFragmentManager(), R.id.up_frame);外面包围tabhost的Rlayout

//

说说与Fragment结合。

具体使用到下面这个方法

int count=fragments.length;//拿到多少个fragment

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

TabSpec spec=tab.newTabSpec(str[i]).setIndicator(getTabItemView(i));

tab.addTab(spec,fragments[i],null);//把点击的tab与fragment连接起来

}

}

////////////

private View getTabItemView(int index){

View view =inflater.inflate(R.layout.fragment_down, null);

image=(ImageView) view.findViewById(R.id.fragment_image);

text=(TextView) view.findViewById(R.id.fragment_text);

image.setImageResource(icon[index]);

text.setText(str[index]);

return view;

}

==========================================

总的来说就是

把fragment添加到fragmenttabhot。。

供自己参考。