我有一个Android上的选项卡视图的问题。与Tab初始化的Android问题
我使用4个xml布局文件(每个RelativeLayout)作为选项卡视图中选项卡的内容。
main.xml中包含:含有的LinearLayout含有TabWidget:(ID/tabhost @android)(@android:ID /标签)和一个的FrameLayout(@android:ID/tabcontent)
如果TabHost我一个接一个地在main.xml中嵌入多个工作正常...(除了我的main.xml是不可维护的,这是我想通过将文件拆分成简单的main.xml来解决的问题,它定义了标签和内容框架,然后将视图推到这个...)。
代码我有膨胀和4个RelativeLayout的XML文件插入到标签内容如下:
mTabHost = getTabHost();
View wv = null;
wv = LayoutInflater.from(this).inflate(R.layout.user_tab, mTabHost.getTabContentView(), true);
mTabHost.addTab(mTabHost.newTabSpec("User").setIndicator("User").setContent(wv.getId()));
wv = LayoutInflater.from(this).inflate(R.layout.track_tab, mTabHost.getTabContentView(), true);
mTabHost.addTab(mTabHost.newTabSpec("Track").setIndicator("Track").setContent(wv.getId()));
wv = LayoutInflater.from(this).inflate(R.layout.chart_tab, mTabHost.getTabContentView(), true);
mTabHost.addTab(mTabHost.newTabSpec("Chart").setIndicator("Chart").setContent(wv.getId()));
//等等的多个选项卡。
当我运行此第一个选项卡(用户)是空的,其余选项卡包含所有视图的所有内容...所以tab2具有tab1-4的内容,tab3具有tab1-4的内容和tab4具有来自tab1-4的内容...返回到tab1,它现在具有来自tab1-4的所有内容。
代码工作得很好,在视图等各种对象的事件各方面都不错......这只是它们都糊涂起来的观点...
的是什么任何想法造成这种情况以及如何纠正它?
在此先感谢。
吉姆
嗨,谢谢你。该应用程序不会使用setContent(wv) 编译,因为它声称setContent正在查找视图ID,它使用setContent(wv.getId())进行编译。 与假执行(和的getId()),但是抛出一个 ERROR/AndroidRuntime(224):了java.lang.RuntimeException:由造成无法创建选项卡的内容,因为无法与ID 2131099653 切换回找视图真正清除这个错误,但让我回到我开始的地方。 我怀疑你是正确的,关键是使用虚假的膨胀,但如果我这样做,我不会超过setContent .... 任何其他想法赞赏。 – Jim 2010-07-02 23:16:07
@Jim:哦,等等,对 - 你需要使用像这样的加载器:http://github.com/commonsguy/cw-android/tree/master/Fancy/DynamicTab/ – CommonsWare 2010-07-03 06:07:44
这是一个很酷的解决方案...看起来不错...我发现了一个与原始版本一起工作的替代方案。在这里发布它作为第二个答案 – Jim 2010-07-03 07:49:08