无法在选项卡中自定义android图标和文本

时间:2014-12-09 04:44:34

标签: android xml android-layout android-tabhost android-tabs

我正在使用android tabhost,问题是,我想自定义文本和选项卡的图标,但在我的尝试中,结果只是一个图标,也是无法点击的。我的代码有问题吗?谢谢你的帮助

tabHost.setup(ctx, getSupportFragmentManager(), R.id.realtabcontent);

    for (String tag : tags) {
                if (tag.equals("home")) {
                    tabIndicator = LayoutInflater.from(ctx).inflate(R.layout.custom_tab, tabHost.getTabWidget(), false);
                    ((TextView) tabIndicator.findViewById(R.id.icon_txt)).setText("news");
                    ((ImageView) tabIndicator.findViewById(R.id.icon)).setImageResource(R.drawable.test_menu);
                    tabHost.addTab(tabHost.newTabSpec(tag).setIndicator(tabIndicator),Home.class, null);
                } else if (tag.equals("news")) {
                    tabIndicator = LayoutInflater.from(ctx).inflate(R.layout.custom_tab, tabHost.getTabWidget(), false);
                    ((TextView) tabIndicator.findViewById(R.id.icon_txt)).setText("news");
                    ((ImageView) tabIndicator.findViewById(R.id.icon)).setImageResource(R.drawable.test_menu);
                    tabHost.addTab(tabHost.newTabSpec(tag).setIndicator(tabIndicator),NewsFragment.class, null);
                } else if (tag.equals("info")) {
                    tabIndicator = LayoutInflater.from(ctx).inflate(R.layout.custom_tab, tabHost.getTabWidget(), false);
                    ((TextView) tabIndicator.findViewById(R.id.icon_txt)).setText("news");
                    ((ImageView) tabIndicator.findViewById(R.id.icon)).setImageResource(R.drawable.test_menu);
                    tabHost.addTab(tabHost.newTabSpec(tag).setIndicator(tabIndicator),InfoFragment.class, null);
                } else {
                    tabIndicator = LayoutInflater.from(ctx).inflate(R.layout.custom_tab, tabHost.getTabWidget(), false);
                    ((TextView) tabIndicator.findViewById(R.id.icon_txt)).setText("news");
                    ((ImageView) tabIndicator.findViewById(R.id.icon)).setImageResource(R.drawable.test_menu);
                    tabHost.addTab(tabHost.newTabSpec(tag).setIndicator(tabIndicator),PageFragment.class, null);
                }
            }
tabHost.getTabWidget().setDividerDrawable(null);

用xml来自定义选项卡

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/icon_txt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="5dp" />

</LinearLayout>

2 个答案:

答案 0 :(得分:1)

检查此示例项目,它会向您显示如何更改颜色以及其他样本可以找到的其他内容。   Click here

希望这会对你有所帮助:)。

答案 1 :(得分:1)

请查看以下链接中提供的演示实现。我相信它会解决你的问题:)

http://maxalley.wordpress.com/2012/10/27/android-styling-the-tabs-in-a-tabwidget/

它提供了自定义TabWidget的实现。
我希望这有帮助。