android选项卡的实现,子activity同时重绘选项卡

本文是作者关于Android选项卡实现的原创分享,通过一个demo演示了如何在多个子Activity中重绘底部菜单栏。文章介绍了MenuActivityActivity、ScrollableTabActivity、BaseActivity和ItemNActivity四个关键类的职责,以及activity启动和重绘的控制方法。文章适合初学者理解和学习Android选项卡及Activity管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

即将毕业,做android一年了,鼓足勇气原创一篇。知识面窄,道行尚浅,写的不好与不对的地方,亲们请给我指出来哈,请见谅。

 demo源码下载地址:http://download.youkuaiyun.com/detail/hshuaijun55/4351317

首先,上张效果图,大家一看就知道是做什么的了。


现在咱们很多应用应该都会用到这个效果,网上也有很多文章有介绍如何做,在这儿我就不再赘述,直接进入主题。这个demo是我从最近接触到的一个项目中挖出来的,实现了包括一级activity、二级子activity等子activity都重绘底部菜单栏的效果。demo是我从项目源码中挖出来的,对于demo源码我的理解还不是特别的透彻,希望用到的朋友们一起研究研究。(^_^)

一.程序框架图


各类之间都是继承关系(除去BaseActivity)

scrollableTabActivity继承于ActivityGroup。用来控制重绘菜单栏布局,以及样式设置,和事件监听。

MenuActivityActivity类似于主页,用来添加底部菜单栏的内容。

BaseActivity作为各一级、二级Activity的基类,负责一些共同的方法的定义。

ItemNActivity代表着所有Activity。后面Activity需要做的操作都在这里面自己去定义。

二.各个类的详细讲解

先简单分析各个类的主要的方法点,后边回过头来再分析分析,整个demo中主要设计的关键点。

1.MenuActivityActivity

这个类类似于一个程序主界面,程序启动也是从这个界面开始的。这里面本实现了一个欢迎界面的效果,我在程序中注释掉了这段代码,要用到的朋友直接取消掉注释就行了。实现的思路是先延时100毫秒去加载数据,然后延时5秒之后去除这个view。就是先展示一view,让后台线程去加载数据,然后去掉这个view。

private void loadHomeActivity() {
		new Handler().postDelayed(new Runnable() {
			public void run() {
				MenuActivityActivity.this.navigationInit();
			}
		}, 100L);
		//延时5秒执行去除操作
//		new Handler().postDelayed(new Runnable() {
//			public void run() {
//				MenuActivityActivity.this.deleteToken("");
//			}
//		}, 5000L);
	}

另外需要提到的就是添加底部菜单栏的选项部分的代码,如下

//在ScrollableTabActivity类中定义方法添加tab
    public void navigationInit(){
    	//首页
    	Intent localIntent1 = new Intent();
    	localIntent1.setClass(MenuActivityActivity.this, Item01Activity.class);
    	localIntent1.putExtra("com.360buy:singleInstanceFlag", true);
		localIntent1.putExtra("com.360buy:navigationFlag", true);
		localIntent1.putExtra("com.360buy:navigationId", 0);
    	addTab(new ScrollableTabActivity.TabBarButtonStyle("",R.drawable.home_down, R.drawable.home_up),
				new ScrollableTabActivity.TabBarButtonAction(localIntent1));
    	//搜索
    	Intent localIntent2 = new Intent();
    	localIntent2.setClass(MenuActivityActivity.this, Item02Activity.class);
    	localIntent2.pu
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值