今天做了个挺复杂的界面,用到一个TabHost做了几个选项卡,每个选项卡的内容用了layout定义。结果一运行发现几个选项卡的内容全部重叠到一块儿了,最后偶然发现是一个参数不对,因为界面特别复杂,以为是别的组件干扰了我的选项卡,结果调试了一个下午也没有进展,真是浪费时间。看到网上也没几个人知道,都用了这么一段错误的代码:
//设置使用TabHost布局 LayoutInflater.from(this).inflate(R.layout.index_tab, mTabHost.getTabContentView(), true);
最后一个true会导致选项卡重叠,改为false就行了。
官方文档说:
attachToRoot – Whether the inflated hierarchy should be attached to the root parameter? If false, root is only used to create the correct subclass of LayoutParams for the root view in the XML.
意思是如果把这个参数设为真,那么视图将会附加到TabHost的视图上去,所以导致重叠。