转载时请注明转自:http://blog.csdn.net/sam_zhang1984

交流可加新浪微博:Android开发人

通过在网上搜索,找到了很多关于ActivityGroup的用法,里面主要是“农民伯伯”的那个范例,让我学到了如何利用ActivityGroup实现底部固定,中间可动态加载Activity的界面。

但一直有一个难言之隐没有解决:

如果通过底问按钮打一个Activity A后,在A中点击某个按钮,想打开另一个 Activity B,此时如果是直接使用Intent,然后startActivity(intent)打开B的话,则会在全屏打开B,而不能保持 在ActivityGroup中间打开,保持底部按钮固定。

后来一直没有想到办法,只能通过曲线救国:

当在A中点击了按钮,则向 ActivityGroup发送消息,然后由 ActivityGroup再通过removeAllViews,最后和点击底部按钮打开A一样打开B。这种办法虽然可以,但程序搞得有点乱,而有时需要在两个Activity间传递数据会有点麻烦。

终于,今天在网上看到了一个例子( http://www.cnblogs.com/tanlon/archive/2011/04/23/2025697.html ),

终于解决了这个问题。虽然也是通过得到A的父亲 ActivityGroup,然后再进行 removeAllViews等操作,但至少不需要通过发送消息,弄得程序流程有点乱。

不废话了,直接贴代码:

ScrollView container=(ScrollView)((ActivityGroup)getParent()).getWindow().findViewById(R.id.containerBody); container.removeAllViews(); Intent intent=new Intent(A.this,B.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); Window subActivity=((ActivityGroup)A.this.getParent()).getLocalActivityManager().startActivity("B",intent); container.addView(subActivity.getDecorView());

更多相关文章

  1. Android(安卓)获取 H5中的按钮,点击
  2. android崩溃日志保存sdcard打开并发送到email
  3. Application requires API version 9. Device API version is 8
  4. 通信组件之Intent的基本使用
  5. Android(安卓)Studio提示端口号5037被占用,无法启动ADB解决办法
  6. Android中点击文字打开QQ对话
  7. 环境搭建
  8. android 2.3 GPS 移植实战 二
  9. js判断移动端是否安装某款app的多种方法

随机推荐

  1. Professional Android(安卓)2 Developmen
  2. 【Android(安卓)Studio使用教程4】Androi
  3. android selector 背景选择器的使用, butt
  4. Android(安卓)入门前言之 --布局
  5. Android开发软件
  6. Android面试题整理(中)
  7. Android相对布局属性全集
  8. android:screenOrientation属性
  9. 文字跑马灯
  10. android 学习开始