看到还有些人在使用TabActvity,这个已经被Google废弃了的类,为了大家方便,写了一个能代替TabActivity的东西。说白了也就是对viewpager跟底部菜单进行了一个封装,标准的底部菜单自定义控件已经写好,如果有另外的需求扩展底部菜单控件即可(继承BindPagerAdapterView)。

先上个效果图:

使用方式见代码:

package com.example.tabtest;import com.idroid.tab.TabFrgmAdapter;
import com.idroid.tab.TabSelectView;import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;public class MainActivity extends FragmentActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_main);ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager);viewPager.setAdapter(new TabFrgmAdapter(getSupportFragmentManager(), AFrgm.class, BFrgm.class, CFrgm.class));TabSelectView mTabsView = (TabSelectView) findViewById(R.id.tabs);mTabsView.setViewPager(viewPager);final String[] strs = new String[] { "首页", "第二页", "我" };final int[] images = new int[] { R.drawable.image_slt, R.drawable.image_slt, R.drawable.image_slt };mTabsView.setAdapter(new BaseAdapter() {@Overridepublic View getView(int position, View convertView, ViewGroup parent) {convertView = View.inflate(parent.getContext(), R.layout.tab_item, null);ImageView image = (ImageView) convertView.findViewById(R.id.item_image);image.setImageResource(images[position]);TextView textView = (TextView) convertView.findViewById(R.id.item_text);textView.setText(strs[position]);return convertView;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn 0;}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn null;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn strs.length;}});mTabsView.setCurrentItem(0);}}

其中有一个注意点,选中图片需要根据android:state_selected=”true”设置,如果用pressed,在跳转时,会丢失pressed状态,图片变成未选中的样式。
我在上线的项目中已经使用了该UI框架,使用过程中很容易满足美工的设计,推荐大家使用。而且本身它也是可扩展的,重写onlayout方法即可。

Demo下载地址
GitHub:TabView

替代TabActivity,底部菜单主框架搭建相关推荐

  1. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(14)-主框架搭建

    ASP.NET MVC+EF框架+EasyUI实现权限管理系列(14)-主框架搭建 原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(14)-主框架搭建    ASP.NET MV ...

  2. 仿百度壁纸客户端(一)——主框架搭建,自定义Tab+ViewPager+Fragment

    仿百度壁纸客户端(一)--主框架搭建,自定义Tab+ViewPager+Fragment 百度壁纸系列 仿百度壁纸客户端(一)--主框架搭建,自定义Tab + ViewPager + Fragment ...

  3. Android应用主界面底部菜单实现

    介绍 现在绝大多数主流的应用主界面,都会包含一个底部菜单,就拿腾讯的QQ与微信来说,看起来是这样的  <---我是底部菜单 原理 在很久以前,可以通过TabActivity实现相关功能,自从Fr ...

  4. Android自定义TabActivity(实现仿新浪微博底部菜单更新UI)

    如今Android上很多应用都采用底部菜单控制更新的UI这种框架,例如新浪微博 点击底部菜单的选项可以更新界面.底部菜单可以使用TabHost来实现,不过用过TabHost的人都知道自定义TabHos ...

  5. Android自己定义TabActivity(实现仿新浪微博底部菜单更新UI)

    现在Android上非常多应用都採用底部菜单控制更新的UI这样的框架,比如新浪微博 点击底部菜单的选项能够更新界面.底部菜单能够使用TabHost来实现,只是用过TabHost的人都知道自己定义Tab ...

  6. VisionPro联合C#编程,康耐视cognex,程序案例 针对VisionPro联合C#框架搭建,封装成独立控件(控件如主图所示)

    VisionPro联合C#编程,康耐视cognex,程序案例 针对VisionPro联合C#框架搭建, 封装成独立控件(控件如主图所示)开发项目时将控件拖出,简单几句代码即可实现框架搭建.简单直接,对 ...

  7. 从0开始搭建编程框架——主框架和源码

    一个良好的结构是"对修改关闭,对扩展开放"的.(转载请指明出于breaksoftware的csdn博客) 这个过程就像搭建积木.框架本身需要有足够的向内扩展能力以使自身有进化能力, ...

  8. Android MVVM框架搭建(八)高德地图定位、天气查询、BottomSheetDialog

    Android MVVM框架搭建(八)高德地图定位.天气查询.BottomSheetDialog 前言 正文 一.集成SDK 二.基础配置 ① 权限配置 ② 配置Key 三.显示地图 ① MapFra ...

  9. 一步一步使用ABP框架搭建正式项目系列教程之本地化详解

    返回总目录<一步一步使用ABP框架搭建正式项目系列教程> 本篇目录 扯扯本地化 ABP中的本地化 小结 扯扯本地化 本节来说说本地化,也有叫国际化.全球化的,不管怎么个叫法,反正道理都是一 ...

最新文章

  1. Python 之Re模块(正则表达式)
  2. Dataset:(公交车、恐龙、大象、花朵、骏马)六类图片数据集(AutoKeras测试)的简介、下载、使用方法之详细攻略
  3. web app会遇到那些问题
  4. c++ 异步下获取线程执行结果_这份阿里技术官强推的java线程池笔记,建议你看一下
  5. iris数据集 测试集_IRIS数据集的探索性数据分析
  6. LeetCode 1021. 删除最外层的括号(栈)
  7. SVG.js 颜色渐变使用
  8. 【王道操作系统笔记】进程定义组成组织方式特征
  9. gitlab 安装、配置、清空、卸载、重装
  10. java几种常见加密算法小试
  11. java工程师写html_java工程师_基础_阶段一_HTML笔记篇
  12. 【IIS】修改注册表键值提升IIS的性能
  13. 化工热力学逸度计算_matlab程序,化工热力学逸度计算_Matlab程序
  14. 分享一个matplotlib柱状图
  15. 推荐学习法——思维导图
  16. Drawio免费绘图工具
  17. 写一些最近GPS测试的感受把
  18. 利用css伪类元素实现点击范围扩大
  19. 日本准备推行AI婚配,年轻人会为“爱情算法”买单吗?
  20. 浙江大学计算机学霸作息,浙大学霸学子作息表:精确到分钟!最怕优秀的人比我们还努力!...

热门文章

  1. 阿拉德之怒显示服务器错误,阿拉德之怒网络异常怎么办 安装失败怎么办
  2. html设置页面大小_如何将Word文档页面大小设置为16开?
  3. JDK(JAVA)的安装和配置
  4. OpenStack Pike Minimal安装:三、镜像管理
  5. 从方法论到零售客户实践 解码阿里巴巴数据中台——2018上海云栖大会
  6. UrlUtils工具类,Java URL工具类,Java URL链接工具类
  7. Web开发者用什么编辑器?
  8. 【编码】-小Ho的防护盾-2016.08.14
  9. Android -- EventBus使用
  10. 「MTA」的「錯誤訊息代碼」