67、Fragment实现Tab
2015-12-14 15:30
330 查看
<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>
package com.imooc.tab02; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.view.View; import android.view.View.OnClickListener; import android.view.Window; import android.widget.ImageButton; import android.widget.LinearLayout; public class MainActivity extends FragmentActivity implements OnClickListener { private LinearLayout mTabWeixin; private LinearLayout mTabFrd; private LinearLayout mTabAddress; private LinearLayout mTabSettings; private ImageButton mImgWeixin; private ImageButton mImgFrd; private ImageButton mImgAddress; private ImageButton mImgSettings; private Fragment mTab01; private Fragment mTab02; private Fragment mTab03; private Fragment mTab04; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); initView(); initEvent(); setSelect(0); } private void initEvent() { mTabWeixin.setOnClickListener(this); mTabFrd.setOnClickListener(this); mTabAddress.setOnClickListener(this); mTabSettings.setOnClickListener(this); } private void initView() { mTabWeixin = (LinearLayout) findViewById(R.id.id_tab_weixin); mTabFrd = (LinearLayout) findViewById(R.id.id_tab_frd); mTabAddress = (LinearLayout) findViewById(R.id.id_tab_address); mTabSettings = (LinearLayout) findViewById(R.id.id_tab_settings); mImgWeixin = (ImageButton) findViewById(R.id.id_tab_weixin_img); mImgFrd = (ImageButton) findViewById(R.id.id_tab_frd_img); mImgAddress = (ImageButton) findViewById(R.id.id_tab_address_img); mImgSettings = (ImageButton) findViewById(R.id.id_tab_settings_img); } private void setSelect(int i) { FragmentManager fm = getSupportFragmentManager(); FragmentTransaction transaction = fm.beginTransaction(); hideFragment(transaction); // 把图片设置为亮的 // 设置内容区域 switch (i) { case 0: if (mTab01 == null) { mTab01 = new WeixinFragment(); transaction.add(R.id.id_content, mTab01); } else { transaction.show(mTab01); } mImgWeixin.setImageResource(R.drawable.tab_weixin_pressed); break; case 1: if (mTab02 == null) { mTab02 = new FrdFragment(); transaction.add(R.id.id_content, mTab02); } else { transaction.show(mTab02); } mImgFrd.setImageResource(R.drawable.tab_find_frd_pressed); break; case 2: if (mTab03 == null) { mTab03 = new AddressFragment(); transaction.add(R.id.id_content, mTab03); } else { transaction.show(mTab03); } mImgAddress.setImageResource(R.drawable.tab_address_pressed); break; case 3: if (mTab04 == null) { mTab04 = new SettingFragment(); transaction.add(R.id.id_content, mTab04); } else { transaction.show(mTab04); } mImgSettings.setImageResource(R.drawable.tab_settings_pressed); break; default: break; } transaction.commit(); } private void hideFragment(FragmentTransaction transaction) { if (mTab01 != null) { transaction.hide(mTab01); } if (mTab02 != null) { transaction.hide(mTab02); } if (mTab03 != null) { transaction.hide(mTab03); } if (mTab04 != null) { transaction.hide(mTab04); } } @Override public void onClick(View v) { resetImgs(); // 切换图片至暗色 switch (v.getId()) { case R.id.id_tab_weixin: setSelect(0); break; case R.id.id_tab_frd: setSelect(1); break; case R.id.id_tab_address: setSelect(2); break; case R.id.id_tab_settings: setSelect(3); break; default: break; } } /** * 切换图片至暗色 */ private void resetImgs() { mImgWeixin.setImageResource(R.drawable.tab_weixin_normal); mImgFrd.setImageResource(R.drawable.tab_find_frd_normal); mImgAddress.setImageResource(R.drawable.tab_address_normal); mImgSettings.setImageResource(R.drawable.tab_settings_normal); } }
DEMO下载地址:http://download.csdn.net/detail/androidsj/9354303
相关文章推荐
- [Clojure] A Room-Escape game, playing with telnet and pure-text commands - Part 3
- NGINX的奇淫技巧 —— 6. IF实现数学比较功能 (1)
- iptables学习笔记
- android 字母索引 listview
- 老男孩教育学员参观机房实践活动
- SQL Server2012中如何通过bak文件还原SQL Server2012数据库
- 10024---JavaScript--EventListener
- 物理内存分配与回收(4)kmalloc 和 vmalloc
- WindowManager.LayoutParams.TYPE_SYSTEM_ALERT 浮动窗适配问题
- Frame-by-frame animation实例
- 软件测试-边界值和等价类
- 高数之拉格朗日乘法---解决约束优化问题
- openwrt-添加自启动
- 【JavaWeb】 JavaBean使用方法
- js中的attribute详解
- Android编程中context及全局变量实例详解
- 内存分析工具 MAT 的使用
- Android属性动画的学习_ObjectAnimator
- 自动换行的线性布局
- Mac系统下的Go开发环境配置