由于很多朋友觉得,TabHost限制太多,发挥余地不大, 所以都会使用ActivityGroup来代替TabHost。
但是在使用ActivityGroup时,很多朋友可能也碰上了标题中的问题。
下面简单讲一下解决办法。
1. 使用ActivityGroup时,如何保存Activity状态?
其实很简单, 只要像下面这样来加载Activity即可。
view plainprint?
getLocalActivityManager().startActivity("XXX", new Intent(this, XXX.class)).getDecorView()
那么又如何让ActivityGroup不保存子Activity的状态呢? 即切换时,直接销毁。
其实只要加一个Flag: Intent.FLAG_ACTIVITY_CLEAR_TOP
,如下:
view plainprint?
getLocalActivityManager().startActivity("YYY", new Intent(this, YYY.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView()
2 使用ActivityGroup时,如何使用子Activity的Menu?
其实也很简单,只要在继承ActivityGroup的类中
view plainprint?
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_MENU) {
this.getLocalActivityManager().getCurrentActivity().openOptionsMenu();
}
return super.onKeyDown(keyCode, event);
}
onkeyDown 或者 onkeyUp都可以!
分享到:
相关推荐
本篇文章将详细探讨如何利用ActivityGroup来实现这样的功能,同时也会讲解如何保存Activity状态以及在子Activity中使用Menu。 ActivityGroup是Android早期版本(Android 2.x)中提供的一种特殊类型的Activity,它...
`ActivityGroup`在早期的Android版本中被用来解决在同一个栈内管理多个`Activity`的需求,但在Android 3.0(API Level 11)之后,官方推荐使用`Fragment`来替代,因为`Fragment`提供了更灵活且性能更好的解决方案。...
3. **`ActivityGroup`与子Activity间通信**:当子Activity中的菜单操作可能会影响到`ActivityGroup`的状态时,可以使用`LocalActivityManager`来传递消息。`LocalActivityManager`提供了`startActivityForResult()`...
上一版本是利用activitygroup实现底部菜单切换,基于现在都不太赞同用,于是简单地利用fragment 来实现了这一效果,IndexActivity为底部菜单的首页,MainFragment 和LoginActivity 都为它的子fragment.底部菜单用的...
在使用Fragment实现类似`ActivityGroup`的效果时,可以使用`FragmentManager`来添加、替换和管理Fragment。例如: ```java FragmentManager fm = getSupportFragmentManager(); FragmentTransaction ft = fm.begin...
- 使用Button和ActivityGroup实现Tab效果时,确保Button处于选中状态并与对应的Activity关联。 - 为避免冲突,在`drawable`、`layout`、`menu`、`values`等目录下的文件名前面加上前缀。 - 数据处理时一定要进行有效...
16.3 ActivityGroup 16.4 ViewStub 16.5 Bitmap内存溢出 16.5.1 图片预先缩放 16.5.2 普通的图片缩放方法 16.5.3 Dalvik虚拟机的堆内存分配 16.5.4 Bitmap对象及时释放 16.6 多分辨率适应 16.7 本章小结
2. 动态反馈:当用户点击某个图标时,底部导航栏应该有明显的视觉反馈,如选中状态的变化,以确认用户操作。 二、实现底部导航栏 1. 使用Material Design库:Google提供了Material Design组件库,其中的`Bottom...
11. **Tab效果实现**:使用`Button`与`ActivityGroup`结合`setSelected(true)`实现选中状态与切换效果。 12. **资源命名冲突预防**:通用组件开发时,在`drawable/layout/menu/values`目录下的文件名前加前缀,避免...