Android TabHost动态加载内容总结

前面用继承TabActivity的方法很好的完成了,TabHost的使用,和内容的动态加载。

业务需要,Tab的tab是可变的,用户可以选择要显示出来的tab页面,而且要求,现在后马上能够在UI上体现。

1,判断用户的选择,在onResum里处理,直接加用addTab加到TabHost里。
运行之后,才发现这种做法是多么的愚蠢。每次选择,就会把现在选择状态的tab加到原来TabHost里,取消选择的却没有消失。
2.仍然在onResum做,在addTab之前用clearAllTabs(),清除以前的所有tab。
运行后,发现有时可以,有时程序会崩溃掉。诡异的是,错误并不是发生在onResume里,因为它正常结束了。
仔细分析Log后,发现是getCurrentTab时出了错,而这个方法是由系统调用的。
修改办法,可以覆盖它,只是这样会比较麻烦。
3.纠结1个小时后,想到问题的关系所在。 就是currentTab这个成员出了问题。clear后,它没有变,系统再去取的时候就出了错。
毅然决定在clear之前,用setCurentTab(0)来定位到第一个。
4.OK。
经过数小时的奋斗,问题终于解决了,继续看我的电影,O(∩_∩)O~


注:
setCurentTab(0)这样做其实是有问题的,因为有可能一个tab都没有。
只是,我们的业务里,如果用户一个tab都没有选的话,会有一他提示的tab。所以没有问题。






你可能感兴趣的:(android,UI)