选项卡布局不会显示选项卡图标

时间:2013-07-15 22:50:24

标签: java android eclipse

所以我最终为我的应用程序制作了一个完美无缺的标签布局,但是缺少了一些东西。我也在设计图标方面投入了大量精力,但我注意到它们根本没有显示。我将发布以下代码,以说明我是如何尝试这样做的。

整个java代码(这都是onCreate):

TabHost tabHost = getTabHost();

    //CRAFTING TAB
    TabSpec craftTabSpec = tabHost.newTabSpec("Crafting");
    craftTabSpec.setIndicator("Crafting", getResources().getDrawable(R.drawable.crafticonstate));
    Intent craftIntent = new Intent(this, Bifrost.class);
    craftTabSpec.setContent(craftIntent);

    //ADDITION INFO TAB
    TabSpec infoTabSpec = tabHost.newTabSpec("Info");
    infoTabSpec.setIndicator("Info", getResources().getDrawable(R.drawable.infoiconstate));
    Intent infoIntent = new Intent(this, Bifrostinfo.class);
    infoTabSpec.setContent(infoIntent);

    tabHost.addTab(craftTabSpec);
    tabHost.addTab(infoTabSpec);

crafticonstate XML代码:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- When selected, use grey -->
    <item android:drawable="@drawable/weaponsmith_logo_hover"
      android:state_selected="true" />
    <!-- When not selected, use white-->
    <item android:drawable="@drawable/weaponsmith_logo" />
</selector>

我还尝试添加没有xml文件的图标,就像&#39; R.drawable.icon&#39;但那也不起作用。

1 个答案:

答案 0 :(得分:2)

这是我使用的一个很好的技巧。

不幸的是,由于TabHost被折旧,它不知何故只在更高级别的Api屏幕上显示文字。一些解决方法是这样做:

   //CRAFTING TAB
    TabSpec craftTabSpec = tabHost.newTabSpec("Crafting");      
    craftTabSpec.setIndicator("",getResources().getDrawable(R.drawable.crafticonstate));
    Intent craftIntent = new Intent(this, Bifrost.class);
    craftTabSpec.setContent(craftIntent);

删除指标(文本),强制选项卡加载图像。如果你还想要文字。您可以修改图像以包含文本。

希望有所帮助