Fragment+FragmentTabHost组件实现常见主页面(仿微信新浪)

采取的方法是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
13     <LinearLayout
14         android:layout_width="match_parent"
15         android:layout_height="wrap_content"
16         android:layout_gravity="bottom"
17         android:orientation="vertical">
18
19         <View
20             android:layout_width="match_parent"
21             android:layout_height="1px"
22             android:background="@color/color_home_tab_line" />
23
24         <android.support.v4.app.FragmentTabHost
25             android:id="@android:id/tabhost"
26             android:layout_width="fill_parent"
27             android:layout_height="wrap_content"
28             android:background="@color/et_divider_disable">
29
30             <FrameLayout
31                 android:id="@android:id/tabcontent"
32                 android:layout_width="0dp"
33                 android:layout_height="0dp"
34                 android:layout_weight="0" />
35         </android.support.v4.app.FragmentTabHost>
36
37     </LinearLayout>
38 </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
55
56
57 }

就ok啦!

时间: 2024-07-29 17:33:06

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

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

记得之前写过2篇关于底部菜单的实现,由于使用的是过时的TabHost类,虽然一样可以实现我们想要的效果,但作为学习,还是需要来了解下这个新引入类FragmentTabHost 之前2篇文章的链接: 安卓开发复习笔记——TabHost组件(一)(实现底部菜单导航) 安卓开发复习笔记——TabHost组件(二)(实现底部菜单导航) 关于Fragment类在之前的安卓开发复习笔记——Fragment+ViewPager组件(高仿微信界面)也介绍过,这里就不再重复阐述了. 国际惯例,先来张效果图: 下面

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

http://www.cnblogs.com/lichenwei/p/3985121.html 记得之前写过2篇关于底部菜单的实现,由于使用的是过时的TabHost类,虽然一样可以实现我们想要的效果,但作为学习,还是需要来了解下这个新引入类FragmentTabHost 之前2篇文章的链接: 安卓开发复习笔记——TabHost组件(一)(实现底部菜单导航) 安卓开发复习笔记——TabHost组件(二)(实现底部菜单导航) 关于Fragment类在之前的安卓开发复习笔记——Fragment+Vie

仿微信新消息提示音

怕有些人不知道怎么进入微信的新消息提示音功能,我这里说下操作步骤: 打开微信----我---设置---新消息提醒---新消息提示音. 经过以上的步骤就进入了这样的界面 具体实现的步骤. 难点之一:获取到手机系统的提示音,并将它们显示在一个listview里面. 参考如下代码: // 获得RingtoneManager对象   RingtoneManager manager = new RingtoneManager(this);   // 设置RingtoneManager对象的类型为TYPE_

高仿微信新消息提示音功能

最近公司在做一个项目,有一个切换消息提示音的功能,可以切换本应用收到消息的提示音,而不影响系统提示音.我就按照微信的那个样式进行了编程,最终得到想要的效果. 转载请注明出处,谢谢:http://blog.csdn.net/harryweasley/article/details/46408037 怕有些人不知道怎么进入微信的新消息提示音功能,我这里说下操作步骤: 打开微信----我---设置---新消息提醒---新消息提示音. 经过以上的步骤就进入了这样的界面 这个是微信的效果图. 下面是我自己

安卓开发笔记——多种方式实现底部菜单栏(仿微信界面)

关于底部菜单是什么,我想没必要介绍了,在市场上的APP里太常见了,这里提供两种方式来实现. 记得之前写过几篇关于底部菜单实现的方法,有兴趣的朋友可以看看: 1.<安卓开发复习笔记——TabHost组件(一)(实现底部菜单导航)> 2.<安卓开发复习笔记——TabHost组件(二)(实现底部菜单导航)> 3.<安卓开发笔记——Fragment+FragmentTabHost组件(实现新浪微博底部菜单)> 今天带来种相对更通俗易懂的写法,不再和过去一样去沿用TabHost了

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

什么是ViewPager? 关于ViewPager的介绍和使用,在之前我写过一篇相关的文章<安卓开发复习笔记——ViewPager组件(仿微信引导界面)>,不清楚的朋友可以看看,这里就不再重复. 什么是Fragment? Fragment是Android3.0后新增的概念,Fragment名为碎片,不过却和Activity十分相似,具有自己的生命周期,它是用来描述一些行为或一部分用户界面在一个Activity中,我们可以合并多个Fragment在一个单独的activity中建立多个UI面板,或

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

http://www.cnblogs.com/lichenwei/p/3982302.html 什么是ViewPager? 关于ViewPager的介绍和使用,在之前我写过一篇相关的文章<安卓开发复习笔记——ViewPager组件(仿微信引导界面)>,不清楚的朋友可以看看,这里就不再重复. 什么是Fragment? Fragment是Android3.0后新增的概念,Fragment名为碎片,不过却和Activity十分相似,具有自己的生命周期,它是用来描述一些行为或一部分用户界面在一个Act

安卓开发复习笔记——ViewPager组件(仿微信引导界面&gt;)

这2天事情比较多,都没时间更新博客,趁周末,继续继续~ 今天来讲个比较新潮的组件——ViewPager 什么是ViewPager? ViewPager是安卓3.0之后提供的新特性,继承自ViewGroup,专门用以实现左右滑动切换View的效果. 如果想向下兼容就必须要android-support-v4.jar这个包的支持,这是一个来自google提供的一个附加包. 通俗点来讲,就是现在市面上大多数app,安装完第一次打开软件会出现的一个左右滑动的引导界面. 先来看下效果图:     这是一个

Android控件-Fragment+ViewPager(高仿微信界面)

什么是Fragment? Fragment是Android3.0后新增的概念,Fragment名为碎片,不过却和Activity十分相似,具有自己的生命周期,它是用来描述一些行为或一部分用户界面在一个Activity中,我们可以合并多个Fragment在一个单独的activity中建立多个UI面板,或者重用Fragment在多个activity中. 关于Fragment的生命周期,由于Fragment需要依赖Activity,也就是说当一个Activity的生命周期结束之后,那么Fragment