<LinearLayout
  。。。。。。。。。。 <FrameLayout     android:id="@+id/id_content"android:layout_width="fill_parent"android:layout_height="0dp"android:layout_weight="1" /><include layout="@layout/bottom" />
</LinearLayout>

  1 package com.imooc.tab02;
  2
  3 import android.os.Bundle;
  4 import android.support.v4.app.Fragment;
  5 import android.support.v4.app.FragmentActivity;
  6 import android.support.v4.app.FragmentManager;
  7 import android.support.v4.app.FragmentTransaction;
  8 import android.view.View;
  9 import android.view.View.OnClickListener;
 10 import android.view.Window;
 11 import android.widget.ImageButton;
 12 import android.widget.LinearLayout;
 13
 14 public class MainActivity extends FragmentActivity implements OnClickListener {
 15     private LinearLayout mTabWeixin;
 16     private LinearLayout mTabFrd;
 17     private LinearLayout mTabAddress;
 18     private LinearLayout mTabSettings;
 19
 20     private ImageButton mImgWeixin;
 21     private ImageButton mImgFrd;
 22     private ImageButton mImgAddress;
 23     private ImageButton mImgSettings;
 24
 25     private Fragment mTab01;
 26     private Fragment mTab02;
 27     private Fragment mTab03;
 28     private Fragment mTab04;
 29
 30     @Override
 31     protected void onCreate(Bundle savedInstanceState) {
 32         super.onCreate(savedInstanceState);
 33
 34         requestWindowFeature(Window.FEATURE_NO_TITLE);
 35         setContentView(R.layout.activity_main);
 36
 37         initView();
 38         initEvent();
 39         setSelect(0);
 40     }
 41
 42     private void initEvent() {
 43         mTabWeixin.setOnClickListener(this);
 44         mTabFrd.setOnClickListener(this);
 45         mTabAddress.setOnClickListener(this);
 46         mTabSettings.setOnClickListener(this);
 47     }
 48
 49     private void initView() {
 50         mTabWeixin = (LinearLayout) findViewById(R.id.id_tab_weixin);
 51         mTabFrd = (LinearLayout) findViewById(R.id.id_tab_frd);
 52         mTabAddress = (LinearLayout) findViewById(R.id.id_tab_address);
 53         mTabSettings = (LinearLayout) findViewById(R.id.id_tab_settings);
 54
 55         mImgWeixin = (ImageButton) findViewById(R.id.id_tab_weixin_img);
 56         mImgFrd = (ImageButton) findViewById(R.id.id_tab_frd_img);
 57         mImgAddress = (ImageButton) findViewById(R.id.id_tab_address_img);
 58         mImgSettings = (ImageButton) findViewById(R.id.id_tab_settings_img);
 59     }
 60
 61     private void setSelect(int i) {
 62         FragmentManager fm = getSupportFragmentManager();
 63         FragmentTransaction transaction = fm.beginTransaction();
 64         hideFragment(transaction);
 65         // 把图片设置为亮的
 66         // 设置内容区域
 67         switch (i) {
 68         case 0:
 69             if (mTab01 == null) {
 70                 mTab01 = new WeixinFragment();
 71                 transaction.add(R.id.id_content, mTab01);
 72             } else {
 73                 transaction.show(mTab01);
 74             }
 75             mImgWeixin.setImageResource(R.drawable.tab_weixin_pressed);
 76             break;
 77         case 1:
 78             if (mTab02 == null) {
 79                 mTab02 = new FrdFragment();
 80                 transaction.add(R.id.id_content, mTab02);
 81             } else {
 82                 transaction.show(mTab02);
 83             }
 84             mImgFrd.setImageResource(R.drawable.tab_find_frd_pressed);
 85             break;
 86         case 2:
 87             if (mTab03 == null) {
 88                 mTab03 = new AddressFragment();
 89                 transaction.add(R.id.id_content, mTab03);
 90             } else {
 91                 transaction.show(mTab03);
 92             }
 93             mImgAddress.setImageResource(R.drawable.tab_address_pressed);
 94             break;
 95         case 3:
 96             if (mTab04 == null) {
 97                 mTab04 = new SettingFragment();
 98                 transaction.add(R.id.id_content, mTab04);
 99             } else {
100                 transaction.show(mTab04);
101             }
102             mImgSettings.setImageResource(R.drawable.tab_settings_pressed);
103             break;
104
105         default:
106             break;
107         }
108
109         transaction.commit();
110     }
111
112     private void hideFragment(FragmentTransaction transaction) {
113         if (mTab01 != null) {
114             transaction.hide(mTab01);
115         }
116         if (mTab02 != null) {
117             transaction.hide(mTab02);
118         }
119         if (mTab03 != null) {
120             transaction.hide(mTab03);
121         }
122         if (mTab04 != null) {
123             transaction.hide(mTab04);
124         }
125     }
126
127     @Override
128     public void onClick(View v) {
129         resetImgs();   // 切换图片至暗色
130         switch (v.getId()) {
131         case R.id.id_tab_weixin:
132             setSelect(0);
133             break;
134         case R.id.id_tab_frd:
135             setSelect(1);
136             break;
137         case R.id.id_tab_address:
138             setSelect(2);
139             break;
140         case R.id.id_tab_settings:
141             setSelect(3);
142             break;
143
144         default:
145             break;
146         }
147     }
148
149     /**
150      * 切换图片至暗色
151      */
152     private void resetImgs() {
153         mImgWeixin.setImageResource(R.drawable.tab_weixin_normal);
154         mImgFrd.setImageResource(R.drawable.tab_find_frd_normal);
155         mImgAddress.setImageResource(R.drawable.tab_address_normal);
156         mImgSettings.setImageResource(R.drawable.tab_settings_normal);
157     }
158
159 }

DEMO下载地址:http://download.csdn.net/detail/androidsj/9354303

67、Fragment实现Tab相关推荐

  1. 使用Fragment实现Tab效果

    在上一篇中,我们将了使用ViewPager实现Tab效果.如果没有阅读过,可以点击下面的地址: http://www.cnblogs.com/fuly550871915/p/4849893.html ...

  2. Android典型界面设计(4)——使用ActionBar+Fragment实现tab切换

    一.问题描述 之前我们使用ViewPager+Fragment区域内头部导航,在Android 3.0之后Google增加了新的ActionBar,可方便的实现屏幕Head部区域的 设计如返回键.标题 ...

  3. Android 使用RadioButton+Fragment构建Tab

    最近为公司开发移动app,看到app的主页面就四个选项卡加对应的页面,但是代码写复杂无比,很难维护,鉴于此想用最少的代码实现其功能,废话不多说,先上效果图. 实现思路 从图我们基本猜到基本思路如下 底 ...

  4. 低版本系统兼容的ActionBar(六)用Fragment+ViewPager+Tab实现快速导航

    Tab经常和Fragment结合使用,这一讲我们用3种方式来实现这种快捷导航. 0.重要的两个监听器 MyTabListener,这个我们之前已经接触过了 package com.kale.actio ...

  5. android actionbar tab,ActionBar+Fragment实现Tab

    还是从Tab的几个组成部分来分析:Tab标签页(ActionBar.Tab),Tab所切换内容部分content( Fragment实现) 1.新建每个Fragment, layout,Tab的内容部 ...

  6. Kotlin + AndroidX + Tablayout + ViewPager + Fragment 实现Tab切页

    1.前沿 Google已经受够了V4,V7包的各种冲突.所以直接不再维护V4,V7包了.以后就统一使用AndroidX. 2.gradle配置: 除了原有的androidX的库,还需要使用materi ...

  7. 使用fragment实现tab

    原文:http://blog.csdn.net/guolin_blog/article/details/13171191 现在Fragment的应用真的是越来越广泛了,之前Android在3.0版本加 ...

  8. Android笔记 fragment的Tab样式demo

    注:android:minSdkVersion="11" 11才有的新特性 此种效果可以用TabHost实现 也可以用ViewPager实现(ViewPager没实现过 据说更美化 ...

  9. ViewPager+Fragment实现TabHost,Fragment动态添加、删除,Tab选项卡跟随滑动

    效果图: 代码功能: (1)用ViewPager+Fragment实现TabHost,ViewPager的每一个Page均是Fragment.ViewPager中的Fragment可以动态添加.删除. ...

最新文章

  1. 有源汇上下界最小费用可行流 ---- P4043 [AHOI2014/JSOI2014]支线剧情(模板)
  2. php 过滤css样式,PHPCMS v9过滤采集内容中的CSS样式
  3. python编程语言是什么-python是什么编程语言
  4. 我的世界minecraft-Python3.9编程(4)-近实时刷新玩家位置
  5. 为什么服务端程序都需要先 listen 一下?
  6. SDOI2016R2(怎么可能是解题报告)
  7. Unity3D之UGUI基础3:Image图片
  8. 腾讯云服务器2003系统,腾讯云服务器windows2003系统续用的说明
  9. 凛冬已至:大厂裁员浪潮,基础福利大砍,行业饱和,大龄程序员该如何自处
  10. matlab解方程组解析解
  11. 【阅读笔记】Towards Efficient and Privacy-preserving Federated Deep Learning
  12. vue 实现切换主题色(低配版)
  13. Web 2.0时代RSS的.Net实现
  14. 总线干扰神器——VH6501
  15. C语言 输入成绩按成绩输出等级
  16. 水果店的问题和风险,开水果店会遇到什么问题
  17. Mac软件安装包和问题解决方案
  18. 还在埋头干活?给程序员的几个忠告
  19. 10017---今天下午接到阿里的电话面试
  20. 回顾“90后”——MISRA的25年岁月

热门文章

  1. 科研地图来了,看看你的研究领域在哪里!中国科学院科技战略咨询研究院发布《科学结构图谱2021》
  2. 基金评审人总结的15条写作技巧
  3. 转载:力扣:整数翻转(难点:整数溢出)
  4. Python + Django 如何支撑了 7 亿月活用户的 Instagram?
  5. tensorflow2调用huggingface transformer预训练模型
  6. 怎么把向上滑动取消_美瞳滑片是什么意思?为什么会滑片?怎么解决?
  7. mysql避免回环复制_【20181204】 MySQL 双主复制是如何避免回环复制的
  8. PyTorch随笔-5
  9. AI理论知识整理(1)-数列(1)
  10. rust(14)-if let,while let