采取的方法是Fragment+FragmentTabHost组件来实现这种常见的app主页面的效果

首先给出main.xml文件

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical" android:layout_width="match_parent"
  4. android:layout_height="match_parent">
  5. <FrameLayout
  6. android:id="@+id/realtabcontent"
  7. android:layout_width="fill_parent"
  8. android:layout_height="0dip"
  9. android:layout_weight="1"
  10. android:background="@color/white" />
  11.  
  12. <LinearLayout
  13. android:layout_width="match_parent"
  14. android:layout_height="wrap_content"
  15. android:layout_gravity="bottom"
  16. android:orientation="vertical">
  17.  
  18. <View
  19. android:layout_width="match_parent"
  20. android:layout_height="1px"
  21. android:background="@color/color_home_tab_line" />
  22.  
  23. <android.support.v4.app.FragmentTabHost
  24. android:id="@android:id/tabhost"
  25. android:layout_width="fill_parent"
  26. android:layout_height="wrap_content"
  27. android:background="@color/et_divider_disable">
  28.  
  29. <FrameLayout
  30. android:id="@android:id/tabcontent"
  31. android:layout_width="0dp"
  32. android:layout_height="0dp"
  33. android:layout_weight="0" />
  34. </android.support.v4.app.FragmentTabHost>
  35.  
  36. </LinearLayout>
  37. </LinearLayout>

主代码:

  1. public class MainActivity
  2. { @ViewInject(android.R.id.tabhost)
  3. private FragmentTabHost mTabHost;
  4. private LayoutInflater layoutInflater;
  5.  
  6. private int mImageViewArray[] = {R.drawable.home_tab1, R.drawable.home_tab2, R.drawable.home_tab3, R.drawable.home_tab4};
  7. private String mTextviewArray[] = {"首页", "圈子", "资讯","个人中心"};
  8. private Class fragmentArray[] = {Fragment1.class, Fragment2.class, Fragment3.class,Fragment4.class};
  9.  
  10. protected void onCreate(Bundle savedInstanceState) {
  11. super.onCreate(savedInstanceState);
  12. init();
  13. }
  14.  
  15. @Override
  16. protected void init() {
  17. // list=new JSONArray();
  18. layoutInflater=LayoutInflater.from(this);
  19. initTabHost();//初始化底部菜单
  20. }
  21.  
  22. /**
  23. * 初始化底部工具栏
  24. */
  25. private void initTabHost() {
  26. mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
  27. mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
  28. int count = fragmentArray.length;
  29. for (int i = 0; i < count; i++) {
  30. TabHost.TabSpec tabSpec = mTabHost.newTabSpec(mTextviewArray[i])
  31. .setIndicator(getTabItemView(i));
  32. mTabHost.addTab(tabSpec, fragmentArray[i], null);
  33. mTabHost.getTabWidget().getChildAt(i)
  34. .setBackgroundResource(R.color.white);
  35. }
  36. mTabHost.setCurrentTabByTag(mTextviewArray[0]);
  37. mTabHost.getTabWidget().setDividerDrawable(null);
  38. }
  39.  
  40. /**
  41. * 项的样式
  42. * @param index 第几个
  43. * @return 每一个Tab样式
  44. */
  45. private View getTabItemView(int index) {
  46. View view = layoutInflater.inflate(R.layout.tab_home_item, null);
  47. ImageView imageView = (ImageView) view.findViewById(R.id.icon);
  48. imageView.setImageResource(mImageViewArray[index]);
  49. TextView textView = (TextView) view.findViewById(R.id.name);
  50. textView.setText(mTextviewArray[index]);
  51. return view;
  52. }
  53.  
  54. }

就ok啦!

Fragment+FragmentTabHost组件实现常见主页面(仿微信新浪)的更多相关文章

  1. 转-Fragment+FragmentTabHost组件(实现新浪微博底部菜单)

    http://www.cnblogs.com/lichenwei/p/3985121.html 记得之前写过2篇关于底部菜单的实现,由于使用的是过时的TabHost类,虽然一样可以实现我们想要的效果, ...

  2. 安卓开发笔记——Fragment+FragmentTabHost组件(实现新浪微博底部菜单)

    记得之前写过2篇关于底部菜单的实现,由于使用的是过时的TabHost类,虽然一样可以实现我们想要的效果,但作为学习,还是需要来了解下这个新引入类FragmentTabHost 之前2篇文章的链接: 安 ...

  3. Android中Fragment和ViewPager那点事儿(仿微信APP)

    在之前的博文<Android中使用ViewPager实现屏幕页面切换和引导页效果实现>和<Android中Fragment的两种创建方式>以及<Android中Fragm ...

  4. Android仿微信图片上传,可以选择多张图片,缩放预览,拍照上传等

    仿照微信,朋友圈分享图片功能 .可以进行图片的多张选择,拍照添加图片,以及进行图片的预览,预览时可以进行缩放,并且可以删除选中状态的图片 .很不错的源码,大家有需要可以下载看看 . 微信 微信 微信 ...

  5. Vue3.0聊天室|vue3+vant3仿微信聊天实例|vue3.x仿微信app界面

    一.项目简介 基于Vue3.0+Vant3.x+Vuex4.x+Vue-router4+V3Popup等技术开发实现的仿微信手机App聊天实例项目Vue3-Chatroom.实现了发送图文表情消息/g ...

  6. 安卓开发笔记——Fragment+ViewPager组件(高仿微信界面)

    什么是ViewPager? 关于ViewPager的介绍和使用,在之前我写过一篇相关的文章<安卓开发复习笔记——ViewPager组件(仿微信引导界面)>,不清楚的朋友可以看看,这里就不再 ...

  7. 转-Fragment+ViewPager组件(高仿微信界面)

    http://www.cnblogs.com/lichenwei/p/3982302.html 什么是ViewPager? 关于ViewPager的介绍和使用,在之前我写过一篇相关的文章<安卓开 ...

  8. 转-ViewPager组件(仿微信引导界面)

    http://www.cnblogs.com/lichenwei/p/3970053.html 这2天事情比较多,都没时间更新博客,趁周末,继续继续~ 今天来讲个比较新潮的组件——ViewPager ...

  9. 安卓开发笔记——ViewPager组件(仿微信引导界面)

    这2天事情比较多,都没时间更新博客,趁周末,继续继续~ 今天来讲个比较新潮的组件——ViewPager 什么是ViewPager? ViewPager是安卓3.0之后提供的新特性,继承自ViewGro ...

随机推荐

  1. 左手坐标系&右手坐标系

    [左手坐标系&右手坐标系] 左手坐标系的正方向.从原点看到某轴正向时,逆时针即为正方向.相反地,从某轴正方向看看原点时,为顺时针即为正方向. 如果判断左手坐标系下叉积的方向.如果A.B向量首尾 ...

  2. vimdiff

    [vimdiff] 启动方法 首先保证系统中的diff命令是可用的.Vim的diff模式是依赖于diff命令的.Vimdiff的基本用法就是: # vimdiff FILE_LEFT FILE_RIG ...

  3. hdu 5655 CA Loves Stick

    CA Loves Stick Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) ...

  4. 帮你选处理器:CPU T9500-p9500-T9400-T9300-p8700对比分析!

    许多人对处理器是P和T开头含混不清,不甚了解,也怪英特尔的处理器型号实在是太过复杂.这需要具体型号来看的.让我们先来看看英特尔的官方解释吧 T: Mobile Highly Performance-- ...

  5. TdxAlertWindowManager右下角HINT显示控件

    带爱像的右下角HINT显示,自动隐藏 function alterInfo: TdxAlertWindowManager;begin  if not Assigned(Falter) then  be ...

  6. 递归遍历树结构顺序显示并且添加到list集合

    /// <summary> /// 给流程排序 by 于連偉 2015/06/15 /// </summary> /// <param name="lstNex ...

  7. .net 配置ueditor

    添加引用如下: <script src="../Ueditor/ueditor.config.js" type="text/javascript"> ...

  8. 51Nod 1201 整数划分 (经典dp)

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1201 题意不多说了. dp[i][j]表示i这个数划分成j个数 ...

  9. 使用struts2实现文件上传

    action中 private File file;//文件 private String fileFileName;//文件名字 固定格式name+FileName private String f ...

  10. 6 种CSS设置居中的方法

    原文 Demos of each of the methods below by clicking here. Horizontal centering with css is rather easy ...