`
libo19881179
  • 浏览: 270429 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ActivityGroup实现iPhone风格的底部tab菜单

阅读更多

 

java代码
public class ActsGroup extends ActivityGroup {

	private LinearLayout bodyView;
	private LinearLayout home, gamebox, team, more;
	private int flag = 0; // 通过标记跳转不同的页面,显示不同的菜单项
//	private String parameter = Constant.BUTTON_HOME;// 初始化加载

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		requestWindowFeature(Window.FEATURE_NO_TITLE); //无标题
		super.onCreate(savedInstanceState);
		setContentView(R.layout.acts_group);
		initMainView();
		// 主界面开始接收参数
		Bundle bundle = getIntent().getExtras();
		if (null != bundle) {
			flag = bundle.getInt("flag");
		}
		// 默认显示 
		showView(flag);

		home.setOnClickListener(new OnClickListener() {

			public void onClick(View v) {
				// TODO Auto-generated method stub
				flag = 0;
				showView(flag);
			
			}
		});
		gamebox.setOnClickListener(new OnClickListener() {

			public void onClick(View v) {
				// TODO Auto-generated method stub
				flag = 1;
				showView(flag);

			}
		});
		team.setOnClickListener(new OnClickListener() {

			public void onClick(View v) {
				// TODO Auto-generated method stub
				flag = 2;
				showView(flag);
			
			}
		});
		more.setOnClickListener(new OnClickListener() {

			public void onClick(View v) {
				// TODO Auto-generated method stub
				flag = 3;
				showView(flag);
				

			}
		});

	}

	/*
	 * 初始化主界面底部的功能菜单
	 */
	public void initMainView() {
		bodyView = (LinearLayout) findViewById(R.id.bodyL);
		home = (LinearLayout) findViewById(R.id.home);
		gamebox = (LinearLayout) findViewById(R.id.gamebox);
		team = (LinearLayout) findViewById(R.id.team);
		more = (LinearLayout) findViewById(R.id.more);
	}

	// 在主界面中显示其他界面
	public void showView(int flag) {
		switch (flag) {
		case 0:
			showHome();
			break;
		case 1:
			showGamebox();
			break;
		case 2:
			showTeam();
			break;
		case 3:
			showMore();
			break;
		default:
			break;
		}
	}

	public void showHome() {
		bodyView.removeAllViews();
		bodyView.addView(getLocalActivityManager().startActivity("home",
				new Intent(ActsGroup.this, MainActivity.class)).getDecorView());
		home.setBackgroundResource(R.drawable.tab_highlight);
		gamebox.setBackgroundResource(R.drawable.tab_background);
		more.setBackgroundResource(R.drawable.tab_background);
		team.setBackgroundResource(R.drawable.tab_background);
	}

	public void showGamebox() {
			bodyView.removeAllViews();
			bodyView.addView(getLocalActivityManager().startActivity(
					"gamebox", new Intent(ActsGroup.this, Menu2Activity.class))
					.getDecorView());
			gamebox.setBackgroundResource(R.drawable.tab_highlight);
			home.setBackgroundResource(R.drawable.tab_background);
			more.setBackgroundResource(R.drawable.tab_background);
			team.setBackgroundResource(R.drawable.tab_background);
	}

	public void showTeam() {
		bodyView.removeAllViews();
		bodyView.addView(getLocalActivityManager().startActivity("team",
				new Intent(ActsGroup.this, Menu2Activity.class)).getDecorView());
		team.setBackgroundResource(R.drawable.tab_highlight);
		home.setBackgroundResource(R.drawable.tab_background);
		more.setBackgroundResource(R.drawable.tab_background);
		gamebox.setBackgroundResource(R.drawable.tab_background);
	}
	public void showMore() {
		bodyView.removeAllViews();
		bodyView.addView(getLocalActivityManager().startActivity("more",
				new Intent(ActsGroup.this, Menu2Activity.class)).getDecorView());
		more.setBackgroundResource(R.drawable.tab_highlight);
		home.setBackgroundResource(R.drawable.tab_background);
		team.setBackgroundResource(R.drawable.tab_background);
		gamebox.setBackgroundResource(R.drawable.tab_background);
	}
}
 
xml布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:orientation="vertical"
    android:layout_height="fill_parent">
  	<!--动态显示界面-->
	<LinearLayout android:orientation="vertical" 
		          android:layout_width="fill_parent" 
		          android:layout_height="fill_parent"
		          android:id="@+id/bodyL" 
		          android:layout_weight="0.95">
    </LinearLayout>
	<!--底部功能菜单栏  -->
	<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
	             android:id="@+id/bottomlist"
		         android:orientation="horizontal" 
		         android:layout_width="fill_parent"
		         android:layout_height="wrap_content" 
		         android:layout_weight="0.05">		 
		<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
			          android:orientation="vertical" 
			          android:layout_width="wrap_content"
			          android:layout_height="fill_parent" 
			          android:id="@+id/home"
		              android:layout_weight="5" 
		              android:gravity="center_horizontal">
			<ImageView android:background="@drawable/home" 
			           android:layout_gravity="top|center" 
			           android:layout_height="35dp" 
			           android:layout_width="32dp" 
			           android:layout_marginTop="4dp"/>
			<TextView  android:layout_width="wrap_content"
				       android:layout_height="20dp" 
				       android:text="@string/home"	
				/>
		</LinearLayout> 
		<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
			          android:orientation="vertical" 
			          android:layout_width="wrap_content"
			          android:layout_height="fill_parent" 
			          android:id="@+id/gamebox"  
			          android:layout_weight="5" 
			          android:gravity="center_horizontal">
			<ImageView android:background="@drawable/gamebox" 
			           android:layout_gravity="top|center" 
			           android:layout_height="35dp" 
			           android:layout_width="32dp" 
			           android:layout_marginTop="4dp"/>
			<TextView android:layout_width="wrap_content"
				      android:layout_height="20dp" 
				      android:text="@string/gamebox"
				/>
		</LinearLayout>
		<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
			          android:orientation="vertical" 
			          android:layout_width="wrap_content"
			          android:id="@+id/team" 
			          android:layout_height="fill_parent"
			          android:layout_weight="5" 
			          android:gravity="center_horizontal">
			<ImageView android:background="@drawable/team" 
			          android:layout_gravity="top|center" 
			          android:layout_height="35dp" 
			          android:layout_width="32dp" 
			          android:layout_marginTop="4dp"
			 />
			<TextView android:layout_width="wrap_content"
				      android:layout_height="20dp"
			          android:text="@string/team"
			/>
		</LinearLayout>
		<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
			         android:orientation="vertical" 
			         android:layout_width="wrap_content"
			         android:id="@+id/more" 
			         android:layout_height="fill_parent"
			         android:layout_weight="5" 
			         android:gravity="center_horizontal">
			<ImageView android:background="@drawable/more" 
			         android:layout_gravity="top|center" 
			         android:layout_height="35dp" 
			         android:layout_width="32dp" 
			         android:layout_marginTop="4dp"
			   />
			<TextView android:layout_width="wrap_content"
				     android:layout_height="20dp" 
				     android:text="@string/more"
				/>
		</LinearLayout>
	</LinearLayout>
</LinearLayout>
分享到:
评论
1 楼 forever-liang 2012-04-10  
无王道,无真相

相关推荐

    gridview+activityGroup实现tab分页

    在TabHost中,我们可以使用ActivityGroup来实现每个Tab下的不同页面。然而,从API 13开始,Android推荐使用`Fragment`和`FragmentTabHost`来替代`ActivityGroup`,因为`Fragment`提供了更好的回退栈管理、生命周期...

    android activitygroup底部菜单

    标题“android activitygroup底部菜单”指的是在Android应用中,使用ActivityGroup来实现底部菜单的功能。底部菜单通常由几个图标按钮组成,点击不同的按钮可以切换到相应的功能页面,而不会每次都完全退出当前...

    ActivityGroup|顶部底部均有Tab标签之二

    接下来,我们关注底部的Tab实现。在Android SDK中,可以使用`BottomNavigationView`组件来创建底部导航栏。每个菜单项对应一个Tab,可以通过设置`NavigationItemSelectedListener`来监听用户的点击事件,并根据选择...

    基于GridView和ActivityGroup实现的TAB分页

    在Android应用开发中,"基于GridView和ActivityGroup实现的TAB分页"是一个常见的设计模式,用于构建具有多个页面(Tab)且每个页面展示不同数据集的应用界面。这种设计能够提高用户体验,让用户通过简单的点击切换就...

    ActivityGroup实现tab功能

    ActivityGroup是Android早期版本(API Level 8及以下)中实现Tab功能的一种方式,它允许在一个单一的Activity中嵌套多个子Activity。在本文中,我们将深入探讨如何使用ActivityGroup来实现Tab功能,以及它的工作原理...

    基于GridView和ActivityGroup实现的TAB分页(附源码)

    在Android开发中,创建带有分页功能的界面是常见的需求,而使用`GridView`和`ActivityGroup`实现分页是一种不常用但仍然有效的方法。在本文中,我们将深入探讨如何结合这两种组件来创建一个TAB分页的效果。 首先,`...

    Android Gallery+ActivityGroup实现滑动TAB独立Activity

    "Android Gallery+ActivityGroup实现滑动TAB独立Activity"是一个设计模式,它利用Android的Gallery组件和ActivityGroup来达到这一目的。在这个模式中,每个Tab都对应一个独立的Activity,从而提供更灵活和丰富的用户...

    Android之ActivityGroup实现Tab分页标签

    ActivityGroup是Android早期版本(Android 2.x)中提供的一种特殊类型的Activity,它允许开发者在一个单独的Task中管理多个子Activity,从而实现类似Tab切换的效果。不过,随着Android版本的更新,ActivityGroup逐渐...

    ActivityGroupTest ActivityGroup 实现Tab分页

    在Android开发中,`ActivityGroup`是早期API Level 13之前用来实现多级Tab页面的一种方式。在本文中,我们将深入探讨`ActivityGroup`如何帮助开发者构建具有分页功能的用户界面,以及如何在实际项目中应用它。 首先...

    ActivityGroup实现Activit栈

    在Android开发中,ActivityGroup是早些版本API中提供的一种特殊类型的Activity,它允许开发者在一个TabHost或者帧布局(FrameLayout)中嵌套多个Activity,从而实现类似iOS中UINavigationController的堆叠管理器效果...

    ActivityGroup + GridView 实现Tab分页标签

    综上所述,`ActivityGroup + GridView`实现的Tab分页标签方案虽然在早期Android开发中常见,但随着Android系统的不断升级,现在更推荐使用`Fragment`和`ViewPager`等更现代的组件。然而,理解这些旧技术仍然有助于...

    ActivityGroup+GridView实现Tab分页标签的滑动切换界面

    本教程将详细介绍如何利用`ActivityGroup`和`GridView`来实现这一功能。`ActivityGroup`是Android早期版本中用于在一个TabHost内嵌套多个Activity的方式,而`GridView`则是一个常用的布局控件,可以展示多行多列的...

    高仿微信的界面 - ActivityGroup + GridView 实现Tab分页

    这个教程将带你了解如何使用`ActivityGroup`和`GridView`来实现Tab分页,从而达到高仿微信界面的效果。`ActivityGroup`是Android早期版本中用于在一个Activity内嵌套其他Activity的方式,而`GridView`则是一个可以...

    转载:ActivityGroup 实现TabHost

    在Android开发中,ActivityGroup是早期版本(Android 2.x)中实现多层级Tab导航的一种方式。这篇博文可能探讨了如何利用ActivityGroup来构建类似TabHost的功能,因为TabHost是Android SDK提供的一种用于在多个视图...

    ActivityGroup实现TabHost效果

    TabHost限制较多,自己定制不容易使用。本例子继承于ActivityGroup实现与TabHost类似的效果。其中的还实现了按钮的触发状态切换效果。代码详细易懂!上传共同学习,有不好的请指出。。谢谢!

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

    自定义菜单布局+ActivityGroup+多个Activity的方式实现仿新浪微博底部菜单更新UI) 详解:http://blog.csdn.net/pocoyoshamoo/article/details/24708715

    Android之ActivityGroup + GridView 实现Tab分页标签

    很多客户端软件和浏览器软件都喜欢用Tab分页标签来搭建界面框架。读者也许会马上想到使用TabHost 与 TabActivity的组合,其实最常用的不是它们,而是由GridView与ActivityGroup的组合。每当用户在GridView选中一项,...

    tab切换之activitygroup模式

    在早期的Android版本中,`ActivityGroup`被广泛用于实现Tab切换的效果,尤其是在自定义TabHost或者TabWidget时。然而,随着Android SDK的发展,`ActivityGroup`已经逐渐被淘汰,现在更推荐使用`Fragment`和`...

    ActivityGroup和GridView实现标签分页

    6. **顶部Tab实现**: 压缩包中的"ActivityGroup和GridView实现标签分页(顶部Tab)"可能是指在顶部添加一个水平滚动的Tab条,通常使用HorizontalScrollView或ViewPager实现,这种方式可以提供更丰富的交互体验。...

    Android入门之ActivityGroup+GridView实现Tab分页标签的方法

    在Android程序中很多客户端软件和浏览器软件都喜欢用Tab分页标签来搭建界面框架。读者也许会马上想到使用TabHost 与 TabActivity的组合,其实最常用的不是它们,而是由GridView与ActivityGroup的组合。每当用户在...

Global site tag (gtag.js) - Google Analytics