使用Fragment实现微信界面的点击切换
来源:互联网 发布:mac战网修改地区 编辑:程序博客网 时间:2024/06/04 20:04
之前我们使用ViewPager实现了滑动和点击事件,如果单单实现点击,不实现滑动,可以考虑使用Fragment进行替代
1、设置布局文件
2、初始化界面
寻找控件,初始化显示界面
3、增加点击事件
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); }}
0 0
- 使用Fragment实现微信界面的点击切换
- viewpager+fragment的懒加载实现微信点击和滑动切换功能(切换效果)
- 使用fragment实现微信界面的方法
- Viewpage和Fragment实现页面切换,微信界面
- 微信切换界面延时加载的实现方法是优化ViewPager中加载Fragment
- Fragment+ViewPager实现仿微信点击和滑动切换界面
- Sildingmenu不用fragment实现侧滑点击切换界面
- FragmentCustomAnimation实现Fragment的界面切换
- 使用Fragment 写 微信类似的页面切换
- Fragment的简单使用(切换界面)
- 用Fragment实现微信Tab切换
- Android 安卓 fragment+viewpager 仿qq界面 实现点击菜单切换界面+滑动切换viewpager切换界面
- FragmentManager+Fragment实现微信界面布局
- 微信界面切换效果是怎样实现的
- 使用ViewPage+Fragment模仿微信界面
- 使用系统的动画(点击切换界面)
- 157.n1-模仿微信下边点击不同的模块切换不同的界面
- RadioGroup+Fragment实现界面切换
- 原生的js获取DOM元素方法总结
- java 学习实例,实现空对象,和重写了,Comparator 的类实现了对于容器的比较!
- openssl.exe 生成 signature
- LoadRunner调用Java程序—性能测试
- 构建高并发高可用的电商平台架构实践
- 使用Fragment实现微信界面的点击切换
- 重回qwerty布局
- c++ warning C4996
- (转)PL/SQL Developer使用的十个小技巧
- 关于sqlite和wxsqlite的数据库加密
- windows下vim的安装、配置、解决中文乱码
- iOS中SQLite数据库云存储的实现
- 用scala实现wordcount
- Java最大的优势真的在于跨平台吗?