• 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多万,各种当前热门的网络手机奖励红包全部集成,另外还有热门电影和淘宝高额优惠券!很适合各类型的用户。

      

  • 相关阅读:
    每天一个linux命令(1):man命令
    安卓名词积累
    每天一个Linux命令:目录
    ubuntu下Python的安装和使用
    嵌入式基础知识(1):存储
    2月份学习笔记
    AndroidStudio 中的坑Error:(1, 0) Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRID
    AndroidStudio开发出现Warning:Gradle version 2.10 is required. Current version is 2.8. If u
    Git 问题
    判断年 月的值
  • 原文地址:https://www.cnblogs.com/xiaoliao/p/4621880.html
Copyright © 2020-2023  润新知