`

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。所以没有问题。
 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics