FragmentTabHost+Fragment搭建应用主框架

一、主界面Activity代码

  1. public class MainActivity extends FragmentActivity{
  2. //定义FragmentTabHost对象
  3. private FragmentTabHost mTabHost;
  4. //定义一个布局填充器
  5. private LayoutInflater layoutInflater;
  6. //定义数组来存放Fragment界面
  7. private Class<?> fragmentArray[] = {HomeFragment.class,SquareFragment.class,MessageFragment.class,SettingFragment.class};
  8. //定义数组来存放按钮图片
  9. private int mImageViewArray[] = {R.drawable.tab_home_btn,R.drawable.tab_square_btn,R.drawable.tab_message_btn,
  10. R.drawable.tab_setting_btn};
  11. //Tab选项卡的文字
  12. private String mTextviewArray[] = {"首页", "广场", "消息", "设置"};
  13. public void onCreate(Bundle savedInstanceState) {
  14. super.onCreate(savedInstanceState);
  15. setContentView(R.layout.activity_main);
  16. initView();
  17. }
  18. /**
  19. * 初始化组件
  20. */
  21. private void initView(){
  22. //实例化布局对象
  23. layoutInflater = LayoutInflater.from(this);
  24. //实例化TabHost对象,得到TabHost
  25. mTabHost = (FragmentTabHost)findViewById(android.R.id.tabhost);
  26. mTabHost.setup(this, getSupportFragmentManager(), R.id.fragment_container);
  27. //得到fragment的个数
  28. int count = fragmentArray.length;
  29. for(int i = 0; i < count; i++){
  30. //为每一个Tab按钮设置图标、文字和内容
  31. TabSpec tabSpec = mTabHost.newTabSpec(mTextviewArray[i]).setIndicator(getTabItemView(i));
  32. //将Tab按钮添加进Tab选项卡中
  33. mTabHost.addTab(tabSpec, fragmentArray[i], null);
  34. //设置Tab按钮的背景
  35. mTabHost.getTabWidget().getChildAt(i).setBackgroundResource(R.drawable.selector_tab_background);
  36. }
  37. }
  38. /**
  39. * 给Tab按钮设置图标和文字
  40. */
  41. private View getTabItemView(int index){
  42. View view = layoutInflater.inflate(R.layout.tab_item_view, null);
  43. ImageView imageView = (ImageView) view.findViewById(R.id.imageview_tab_item);
  44. imageView.setImageResource(mImageViewArray[index]);
  45. TextView textView = (TextView) view.findViewById(R.id.textview_tab_item);
  46. textView.setText(mTextviewArray[index]);
  47. return view;
  48. }
  49. }

二、主界面布局

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical" >
  6. <FrameLayout
  7. android:id="@+id/fragment_container"
  8. android:layout_weight="1"
  9. android:layout_width="match_parent"
  10. android:layout_height="0dp" />
  11. <android.support.v4.app.FragmentTabHost
  12. android:id="@android:id/tabhost"
  13. android:layout_width="match_parent"
  14. android:layout_height="wrap_content">
  15. <FrameLayout
  16. android:id="@android:id/tabcontent"
  17. android:layout_width="0dp"
  18. android:layout_height="0dp"
  19. android:layout_weight="0" />
  20. </android.support.v4.app.FragmentTabHost>
  21. </LinearLayout>

三、以上两步完成即可实现主框架的搭建。需要注意的是:fragmentArray[],mImageViewArray[],mTextViewArray[]三个数组的内容都是自己定义的,但是三个数组的长度必须保持一致,三个数组中的数据是一一对应的。

来自为知笔记(Wiz)

时间: 2024-10-13 22:24:41

FragmentTabHost+Fragment搭建应用主框架的相关文章

搭建App主流框架_纯代码搭建(OC)

转载自:http://my.oschina.net/hejunbinlan/blog/529778?fromerr=EmSuX7PR 搭建主流框架界面 源码地址在文章末尾 达成效果 效果图 注:本文部分图标及效果图来自[IT江湖] https://github.com/itjhDev/itjh 导读 我们玩iPhone应用的时候,有没发现大部分的应用都是上图差不多的结构,下面的TabBar控制器可以切换子控制器,上面又有Navigation导航条 我们本文主要是讨论主体框架的搭建,数据暂时没有添

10分钟搭建 App 主流框架

搭建主流框架界面 0.达成效果 我们玩iPhone应用的时候,有没发现大部分的应用都是上图差不多的结构,下面的TabBar控制器可以切换子控制器,上面又有Navigation导航条 我们本文主要是搭建主体的框架,数据暂时没有添加 分析做项目的基本流程 1.搭建项目主框架 (1)先搭建tabBarController(下面有一条) (2)再搭建NavigationController(上面有一条,并且每个子控制器的不一样) 2.思考开发方式 (1)storyboard搭建(界面很少的时候使用) (

十分钟搭建App主流框架

搭建主流框架界面 0.达成效果 Snip20150904_5.png 我们玩iPhone应用的时候,有没发现大部分的应用都是上图差不多的结构,下面的TabBar控制器可以切换子控制器,上面又有Navigation导航条 我们本文主要是搭建主体的框架,数据暂时没有添加 分析做项目的基本流程 1.搭建项目主框架 (1)先搭建tabBarController(下面有一条) (2)再搭建NavigationController(上面有一条,并且每个子控制器的不一样) 2.思考开发方式 (1)storyb

十分钟搭建App主流框架_纯代码搭建(OC),你不知道的框架

十分钟搭建App主流框架_纯代码搭建(OC),你不知道的框架java学习爱好者 2019-06-11 14:28搭建主流框架界面 需要源码的可以私信我达成效果 效果图ps :需要源码的可以加群,668041364导读 我们玩iPhone应用的时候,有没发现大部分的应用都是上图差不多的结构,下面的TabBar控制器可以切换子控制器,上面又有Navigation导航条我们本文主要是讨论主体框架的搭建,数据暂时没有添加分析做项目的基本流程 1.搭建项目主框架(1)先搭建tabBarController

Android新浪微博client(一)——主框架搭建

原文出自:方杰| http://fangjie.sinaapp.com/?p=62 转载请注明出处 该项目代码已经放到github:https://github.com/JayFang1993/SinaWeibo 提前声明的是,我是依照Ivan的这套教程学下来的. 首先,对于不论什么应用我们都须要建立一套消息处理机制,就是当用户在UI界面上点击了什么.你应该做出什么样的处理,处理完毕之后又要将结果 反馈给用户.显示在UI界面上.简而言之:主框架在这里主要是搭建起一个异步消息处理机制,UI线程中发

安卓微博客户端 第二天 系统主框架的搭建

从上次更博到今天过了三天了,并不是因为偷懒了,而是这一课的内容对于基础较差的我来说信息量有点过于大了,隔了这么久才勉勉强强把它吃掉.那么废话不多说,直接进入今天的内容吧. 首先先看一下到目前为止的UI效果图: 除了下面多了一个“Welcome to Sina”的TextView,也没什么变化呀.哈哈,那你就错了,上次我们这两个按钮是点不动的,这次都有各自的功能了,先输入用户名和密码点下登录试试. 嗯,各位没有看错,就是将下面的TextView内容改变了.哈哈,可能有人要骂娘了,这不是小学生都会改

android FragmentActivity+FragmentTabHost+Fragment框架布局

这周比较闲,计划系统的学习一下android开发,我本是一名IOS程序员,对手机开发还是有自己的一套思路的, 固这套思路用到我当前学android上了,先选择从Main页面的tabbar部分代码入手, Android框架布局方式大致分两种, TabActivity+TabHost+Activity,这种方式已过期, 另一种就是 FragmentActivity+FragmentTabHost+Fragment这种方式是当前最新的方式,也是google推荐使用方式,那么我当然选第二种方式了,于是就

ASP.NET MVC搭建项目后台UI框架—1、后台主框架

目录 ASP.NET MVC搭建项目后台UI框架-1.后台主框架 ASP.NET MVC搭建项目后台UI框架-2.菜单特效 ASP.NET MVC搭建项目后台UI框架-3.面板折叠和展开 ASP.NET MVC搭建项目后台UI框架-4.tab多页签支持 ASP.NET MVC搭建项目后台UI框架-5.Demo演示Controller和View的交互 ASP.NET MVC搭建项目后台UI框架-6.客户管理(添加.修改.查询.分页) ASP.NET MVC搭建项目后台UI框架-7.统计报表 ASP

仿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