android FragmentActivity+FragmentTabHost+Fragment框架布局

这周比较闲,计划系统的学习一下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;
	}
}

  

时间: 2024-12-19 04:15:51

android FragmentActivity+FragmentTabHost+Fragment框架布局的相关文章

Android用户界面设计:框架布局(转)

摘要:框架布局是Android开发者组织视图控件最简单和最有效的布局之一.通过本文,你将学到所有关于框架布局的知识,它们主要用来在屏幕上组织特别的或重叠的视图控件.使用得当的话,很多有趣的Android程序用户界面都可以基于框架布局来设计. 框架布局是将控件组织在Android程序的用户界面中最简单的布局类型之一. 理解布局对于良好的Android程序设计来说是非常重要的.在这个教程里,你将学到所以关于框架布局的知识,它们主要用来在屏幕上组织特别的或重叠的视图控件.使用得当的话,很多有趣的And

Android FragmentActivity 给Fragment传值

1.Fragment给Activity传值 定义一个在fragment 中 定义interface 监听器,让activity实现,并将activity的引用传递给fragment.即setListener 2.Activity给Fragment传值 Activity必然会持有Fragment的引用,所以,给Fragment定义一个方法,比如setValue(Object xxx);Activity中直接用fragment.setValue(obj)来传值. 综上所述,对象与对象直接数据的传递,

Android碎片:Fragment

Fragment的作用: Fragment的产生其实是谷歌为了解决手机端和平板端软件开发的问题,在Fragment出来之前开发安卓软件如果要同时运行在pad和手机上就得开发两个软件,有了碎片也就是Fragment之后只要开发一个软件就可以适应pad和手机,不受屏幕大小的影响.而且Fragment有自己生命周期使用起来超级方便,逻辑处理可以直接在Fragment里面处理好,然后在Activity中有需要的地方引用这个Fragment就行了 Fragment有android.support.v4.a

Android典型界面设计——FragmentTabHost+Fragment实现底部tab切换

Android典型界面设计——FragmentTabHost+Fragment实现底部tab切换 Android学习笔记:TabHost 和 FragmentTabHost

Android笔记(八) Android中的布局——框架布局

框架布局没有任何定位方式,所有的控件都会摆放在布局的左上角. 代码示例: framelayout.xml <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" androi

整理:Android apk 框架 布局 集锦

看到好的技术教程就想分享一下,不喜勿喷!谢谢配合,仅供菜鸟学习研究(^o^)/~ 友情推荐<爱加密>Android apk加密保护视频教程剪辑:http://www.ijiami.cn/Video?v=3 Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦.组件按照布局的要求依次排列,就组成了用户所看见的界面. 所有的布局方式都可以归类为ViewGroup的5个类别,即ViewGroup的5个直接子类.其它的一些布局都扩展自这5个类. 1.Line

[Android] BottomBar+ViewPager+Fragment实现炫酷的底部导航效果

BottomBar BottomBar是Github上的一个开源框架,因为从1.3.3开始不支持fragments了,要自己配置,弄了很久,不管是app的fragment还是V4 的程序总是总是闪退.于是就用这种方式实现了,效果还不错.github有详细说明,多余的就不说了. 这个roughike是这个项目的所有者(大神致敬). 我用的是android studio开发,fragment全部导的V4的包(以为最开始就支持的是v4的,后面也支持了app.fragment). 首先是dependen

FragmentActivity+FragmentTabHost+Fragement替代TabActibvity+TabHost+Activity

自Android3.2之后,TabActibvity被弃用(Deprecated).取而代之的是FragmentActivity.由于Fragment比Activiy更灵活.消耗的资源更小.全然可以满足TabActivity的效果,所以直接替代之.原来的TabActibvity+TabHost+Activity那套还可以用,只是强烈建议改用FragmentActivity+FragmentTabHost+Fragement FragmentTabHost使用方法: 1. 定义FragmentAc

仿oschina 主界面的实现(一) -------FragmentTabHost+Fragment

FragmentTabHost+Fragment 官网的API dome Special TabHost that allows the use of Fragment objects for its tab content. When placing this in a view hierarchy, after inflating the hierarchy you must call setup(Context, FragmentManager, int) to complete the