如题
请问 如何实现选项卡 不用tabactivity(过期) 不用activitygroup(过期) 不用LocalActivityManager(过期) 也不用Fragment(不好用) 然后每个tab是一个activity
请问 如何实现选项卡 不用tabactivity(过期) 不用activitygroup(过期) 不用LocalActivityManager(过期) 也不用Fragment(不好用) 然后每个tab是一个activity
感谢分享 你不说我真不不知道有这个类 等我弄好了再给你发个demo
你这个例子的选项卡是view 但是我的需求是选项卡里面是activity 也就是有生命周期的 所以你的基本没什么用处 很多应用的选项卡里面都有大量的事情要处理 考虑的东西也很多 Fragment就能实现Activity那种拥有一整套生命周期的效果
不过你要是2.2不兼容,我的建议还是可以考虑的。一般用的activity和TabHost组合,是在一个activity内折腾;你只要一模一样做几个,在监听器实现跳转; mTabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() {
@Override
public void onTabChanged(String tabId) {
// TODO Auto-generated method stub if (tabId.equals("tab1")) {
currentTab = "tab1";
} else if (tabId.equals("tab2")) {
currentTab = "tab2";
} else if (tabId.equals("tab3")) {
currentTab = "tab3";
} else if (tabId.equals("tab4")) {
currentTab = "tab4";
} }
});
跳转到新的activity;用mTabHost.setCurrentTab()设定当前Tab;这样也拥有一整套生命周期的效果,功能上估计也一样;只是不会推兼。
你没用过tabhost吧 看你说的就知道了 如果是tabhost+activity的组合 必须要用到localactivitymanager这个过期的类的 不然就会报错
一、如果用localactivitymanager,选项卡里面就可是activity;跳的话就在addTab这边做,Intent = new Intent(this, TestActivity.class);
mTabHost.addTab(mTabHost
.newTabSpec("tab1")
.setIndicator("TAB1",
getResources().getDrawable(R.drawable.gimp))
.setContent(intent));
二、如果选项卡只是viewgroup,是不需要localactivitymanager;我的意思是在监听器内跳,也就是onTabChanged(String tabId) {},这边用startActivity完成;这种做法不是官方推荐的做法;但如果2.2不兼容,而你又想你的程序寿命长一点,不用过期的方法,不见得不可取;三、我现在用的是activity和TabHost,在一个activity内折腾,是不需要localactivitymanager, 用得很好。