android FragmentActivity+FragmentTabHost+Fragment框架布局

时间:2023-03-10 00:55:26
android FragmentActivity+FragmentTabHost+Fragment框架布局

本人开发的开发者技术变现资源聚集地,大家支持下,下面是网址

https://www.baiydu.com

这周比较闲,计划系统的学习一下android开发,我本是一名IOS程序员,对手机开发还是有自己的一套思路的, 固这套思路用到我当前学android上了,先选择从Main页面的tabbar部分代码入手, Android框架布局方式大致分两种, TabActivity+TabHost+Activity,这种方式已过期, 另一种就是 FragmentActivity+FragmentTabHost+Fragment这种方式是当前最新的方式,也是google推荐使用方式,那么我当然选第二种方式了,于是就在AndroidBus找关于FragmentActivty布局的案例,幸苦了大半天终于找到一个满意的,研究了下代码,并不难,而且比第一种布局方式简单。

下面我贴这部分代码出来:

public class MainTabActivity extends FragmentActivity{
//定义FragmentTabHost对象
private FragmentTabHost mTabHost; //定义一个布局
private LayoutInflater layoutInflater; //定义数组来存放Fragment界面 下面数组中的成员其实都是 Fragment 相当于 TabActivity中的Activity(就是一个页面)
private Class fragmentArray[] = {FragmentPage1.class,FragmentPage2.class,FragmentPage3.class,FragmentPage4.class,FragmentPage5.class}; //定义数组来存放按钮图片
private int mImageViewArray[] = {R.drawable.tab_home_btn,R.drawable.tab_message_btn,R.drawable.tab_selfinfo_btn,
R.drawable.tab_square_btn,R.drawable.tab_more_btn}; //Tab选项卡的文字
private String mTextviewArray[] = {"首页", "消息", "好友", "广场", "更多"};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_tab_layout); initView();
} /**
* 初始化组件
*/
private void initView(){
//实例化布局对象
/*在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。
不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;
而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。*/ layoutInflater = LayoutInflater.from(this);
/*就是把指定的布局资源注射到指定的容器*/ //实例化TabHost对象,得到TabHost
mTabHost = (FragmentTabHost)findViewById(android.R.id.tabhost);
//R.id.realtabcontent 这里是一个FrameLayout标签
mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent); //得到fragment的个数
int count = fragmentArray.length; for(int i = 0; i < count; i++){
//为每一个Tab按钮设置图标、文字和内容
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_background);
}
} /**
* 给Tab按钮设置图标和文字
*/
private View getTabItemView(int index){
//LayoutInflater是用来找res/layout/下的xml布局文件
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;
}
}

  

本人创业做的一款androidApp, 下载量已经有2000多万,各种当前热门的网络手机奖励红包全部集成,另外还有热门电影和淘宝高额优惠券!很适合各类型的用户。

 android FragmentActivity+FragmentTabHost+Fragment框架布局