67、Fragment实现Tab
<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相关推荐
- 使用Fragment实现Tab效果
在上一篇中,我们将了使用ViewPager实现Tab效果.如果没有阅读过,可以点击下面的地址: http://www.cnblogs.com/fuly550871915/p/4849893.html ...
- Android典型界面设计(4)——使用ActionBar+Fragment实现tab切换
一.问题描述 之前我们使用ViewPager+Fragment区域内头部导航,在Android 3.0之后Google增加了新的ActionBar,可方便的实现屏幕Head部区域的 设计如返回键.标题 ...
- Android 使用RadioButton+Fragment构建Tab
最近为公司开发移动app,看到app的主页面就四个选项卡加对应的页面,但是代码写复杂无比,很难维护,鉴于此想用最少的代码实现其功能,废话不多说,先上效果图. 实现思路 从图我们基本猜到基本思路如下 底 ...
- 低版本系统兼容的ActionBar(六)用Fragment+ViewPager+Tab实现快速导航
Tab经常和Fragment结合使用,这一讲我们用3种方式来实现这种快捷导航. 0.重要的两个监听器 MyTabListener,这个我们之前已经接触过了 package com.kale.actio ...
- android actionbar tab,ActionBar+Fragment实现Tab
还是从Tab的几个组成部分来分析:Tab标签页(ActionBar.Tab),Tab所切换内容部分content( Fragment实现) 1.新建每个Fragment, layout,Tab的内容部 ...
- Kotlin + AndroidX + Tablayout + ViewPager + Fragment 实现Tab切页
1.前沿 Google已经受够了V4,V7包的各种冲突.所以直接不再维护V4,V7包了.以后就统一使用AndroidX. 2.gradle配置: 除了原有的androidX的库,还需要使用materi ...
- 使用fragment实现tab
原文:http://blog.csdn.net/guolin_blog/article/details/13171191 现在Fragment的应用真的是越来越广泛了,之前Android在3.0版本加 ...
- Android笔记 fragment的Tab样式demo
注:android:minSdkVersion="11" 11才有的新特性 此种效果可以用TabHost实现 也可以用ViewPager实现(ViewPager没实现过 据说更美化 ...
- ViewPager+Fragment实现TabHost,Fragment动态添加、删除,Tab选项卡跟随滑动
效果图: 代码功能: (1)用ViewPager+Fragment实现TabHost,ViewPager的每一个Page均是Fragment.ViewPager中的Fragment可以动态添加.删除. ...
最新文章
- 有源汇上下界最小费用可行流 ---- P4043 [AHOI2014/JSOI2014]支线剧情(模板)
- php 过滤css样式,PHPCMS v9过滤采集内容中的CSS样式
- python编程语言是什么-python是什么编程语言
- 我的世界minecraft-Python3.9编程(4)-近实时刷新玩家位置
- 为什么服务端程序都需要先 listen 一下?
- SDOI2016R2(怎么可能是解题报告)
- Unity3D之UGUI基础3:Image图片
- 腾讯云服务器2003系统,腾讯云服务器windows2003系统续用的说明
- 凛冬已至:大厂裁员浪潮,基础福利大砍,行业饱和,大龄程序员该如何自处
- matlab解方程组解析解
- 【阅读笔记】Towards Efficient and Privacy-preserving Federated Deep Learning
- vue 实现切换主题色(低配版)
- Web 2.0时代RSS的.Net实现
- 总线干扰神器——VH6501
- C语言 输入成绩按成绩输出等级
- 水果店的问题和风险,开水果店会遇到什么问题
- Mac软件安装包和问题解决方案
- 还在埋头干活?给程序员的几个忠告
- 10017---今天下午接到阿里的电话面试
- 回顾“90后”——MISRA的25年岁月
热门文章
- 科研地图来了,看看你的研究领域在哪里!中国科学院科技战略咨询研究院发布《科学结构图谱2021》
- 基金评审人总结的15条写作技巧
- 转载:力扣:整数翻转(难点:整数溢出)
- Python + Django 如何支撑了 7 亿月活用户的 Instagram?
- tensorflow2调用huggingface transformer预训练模型
- 怎么把向上滑动取消_美瞳滑片是什么意思?为什么会滑片?怎么解决?
- mysql避免回环复制_【20181204】 MySQL 双主复制是如何避免回环复制的
- PyTorch随笔-5
- AI理论知识整理(1)-数列(1)
- rust(14)-if let,while let