(1)使用GridView和Fragment实现Tab效果

 

在商业Android项目中,底部Tab界面效果使用的频率非常频繁,我就趁此,说说我开发底部Tab界面效果的思路。

我是使用GridView和Fragment实现Tab效果的

GridView一般用于表格视图的显示,Tab可以看成是只有一行的表格,GridView的高度设置为一行Tab的高度即可。列数设置为Tab的个数。

在此,将Tab抽象为一个TabMenu的抽象类,成员变量有:选中状态,选中图标,选中文本颜色,未选中图标,未选中文本颜色,当然还有文本,Tab对应的Fragment

// 名称
 private String name;
 // 图标
 private int icon;
 // 选中图标
 private int iconSelected;
 // 名称颜色
 private int textColor;
 // 选中名称颜色
 private int textColorSelected;
 // 背景
 private int background;
 // 选中背景
 private int backgroundSelected;
 // tab标签对应的tab界面
 private TabViewFragment tabViewFragment;
 // 选中状态
 private boolean selected;

 

在GridView适配器中,根据Tab的选中状态设置显示图标和文本颜色即可

//TabMenu为选中状态时,设置选中状态的图标,和文本颜色
  if (menu.isSelected()) {
   imageView.setImageResource(menu.getIconSelected());
   textView.setTextColor(menu.getTextColorSelected());
  } else {
   imageView.setImageResource(menu.getIcon());
   textView.setTextColor(menu.getTextColor());
  }

 

在GridView的单击选项事件中控制Tab及Tab对应Fragment的显示

//获取对应位置的TabMenu
  TabMenu tabMenu = tabMenus.get(position);
  //如果为选中状态,则返回,不再执行下面的操作
  if (tabMenu.isSelected()) {
   return;
  }
  //如果点击TabMenu对应的Fragment不存在,则创建

...//此处省略

//将之前选中的TabMenu设置为不选中,并将对应的Fragment隐藏
  if (selectedTabMenu != null) {
   selectedTabMenu.setSelected(false);
   selectedTabMenu.getTabViewFragment().goneView();
  }
  //将点击的TabMenu设置为选中状态,并将对应的Fragment显示出来
  tabMenu.setSelected(true);
  tabMenu.getTabViewFragment().visibleView();
  //将点击的TabMenu赋值给已选中的TabMenu,即记录当前点击的TabMenu为已选中的TabMenu
  selectedTabMenu = tabMenu;
  //刷新适配器,数据改变时,应该刷新适配器,刷新显示的界面
  tabMenuGridAdapter.notifyDataSetChanged();

源码下载:

如果需要下载源码,请下载文章编号最大的源码下载链接的源码

http://download.csdn.net/detail/qq983742902/6569563

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值