[转载]Android自定义TabHost控件 - _Android_红颜 - eoe移动开发者社区

[转载]自定义TabHost控件 – _Android_红颜 – eoe移动开发者社区.

今天学习了一下 TabHost以前也是一知半解 今天想系统了解下 JAVA代码非常简单 xml只是2个简单布局 这里就不列出了

 

TabHost tabHost = (TabHost)findViewById(R.id.tabHost);
        tabHost.setup();
        LayoutInflater inflater = LayoutInflater.from(this);
        inflater.inflate(R.layout.tab1, tabHost.getTabContentView());
        inflater.inflate(R.layout.tab2, tabHost.getTabContentView());
        tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("TAB1").setContent(R.id.tab1));
        tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("TAB2").setContent(R.id.tab2));

学习过程中遇到了这样的错误 在setContent里 我添入的是 layout的ID 导致运行出错
Could not create tab content because could not find view with id 2130903041
这里是我的不仔细 查了很久发现原来 这里serContent()里边的要是视图的id,比如
LinearLayout的ID 这样的,结果把2个xml文件里的Layout加上id再载入就OK了,这里要
反思一下 为什么会出现这种细节错误

底部标签的实现:
其实也很简单,就是xml里改一下 2个属性

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >

            <FrameLayout
                android:id="@android:id/tabcontent"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1" />

            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />
        </LinearLayout>

这里FrameLayout要写在上边 weight要设为1 然后还要在外边加一层垂直布局的LinearLayout

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏