tabs-标签图标为什么不能显示?

问题描述

标签图标为什么不能显示?

我想做一个简单的标签应用,这个标签应用中有两个选项卡。现在的问题是当我在标签应用中加入下面的代码,只显示文本,没有图标。如果我给文本加 "",图标就会显示出来。我用的android版本是4.0.3。
如何修改代码,让图标显示出来呢?

<?xml version="1.0" encoding="utf-8"?>

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/tabhost"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent" >
<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

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

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

        <LinearLayout android:id="@+id/tab1"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
            <TextView android:id="@+id/textView1"
                android:text="Contenido Tab 1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
    </LinearLayout>

        <LinearLayout android:id="@+id/tab2"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
            <TextView android:id="@+id/textView2"
                android:text="Contenido Tab 2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
    </LinearLayout>

     </FrameLayout>
</LinearLayout>
</TabHost>

activity 代码:

public class TabTestActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Resources res = getResources();

    TabHost tabs=(TabHost)findViewById(R.id.tabhost);
    tabs.setup();

    TabHost.TabSpec spec=tabs.newTabSpec("mitab1");
    spec.setContent(R.id.tab1);
    spec.setIndicator("sss",
            res.getDrawable(android.R.drawable.ic_btn_speak_now));
    tabs.addTab(spec);

    spec=tabs.newTabSpec("mitab2");
    spec.setContent(R.id.tab2);
    spec.setIndicator("TAB2",
            res.getDrawable(android.R.drawable.ic_dialog_map));
    tabs.addTab(spec);
    tabs.setCurrentTab(0);
}

当我添加spec.setIndicator("", res.getDrawable(android.R.drawable.ic_dialog_map));,可以看见图标,但是当我添加spec.setIndicator("TAB2", res.getDrawable(android.R.drawable.ic_dialog_map));,我只能看见 TAB2 ,不能看见另一个,看似没有足够的空间来显示这两个选项卡,所以我又添加
tabs.getTabWidget().getChildAt(1).getLayoutParams().height = 150; 来增加选项卡的高度,还是没有管用。

解决方案

你只加载第一个,所以只能看见最新添加的那个。

TabHost.TabSpec spec=tabs.newTabSpec("mitab1");

        spec.setIndicator("sss",
                res.getDrawable(android.R.drawable.ic_btn_speak_now));
 Intent sssIntent = new Intent(this, First.class);
 spec.setContent(sssIntent);
        tabs.addTab(spec);

TabHost.TabSpec spec2=tabs.newTabSpec("mitab2");
        spec2=tabs.newTabSpec("mitab2");
        spec2.setIndicator("TAB2",
                res.getDrawable(android.R.drawable.ic_dialog_map));
Intent sssIntent2 = new Intent(this, Second.class);
 spec2.setContent(sssIntent2 );
        tabs.addTab(spec2);

解决方案二:

解决了,安卓4.0会有这个问题,修改Manifest.xml里面的Theme,找到System Resources,里面有Theme.black,选这个就行了。
剩下自己要改背景色什么的这个还是比较easy的吧~

解决方案三:

我用空值替换了标签名,现在你只能看见图标。

TabHost.TabSpec spec=tabs.newTabSpec("mitab1");

spec.setIndicator("",
                  res.getDrawable(android.R.drawable.ic_btn_speak_now));
Intent sssIntent = new Intent(this, First.class);
spec.setContent(sssIntent);
tabs.addTab(spec);
时间: 2025-01-03 08:08:14

tabs-标签图标为什么不能显示?的相关文章

jQuery EasyUI API 中文文档 - Tabs标签页/选项卡_jquery

Tabs 标签页/选项卡 用$.fn.tabs.defaults重写defaults. <?XML:NAMESPACE PREFIX = O /> 文档 - Tabs标签页/选项卡_jquery-easyui tabs api">依赖 panel linkbutton 用法示例 创建tabs 1. 经由标记创建Tabs 从标记创建Tabs更容易,我们不需要写任何JavaScript代码.记住把 'easyui-tabs' 类添加到<div/>标记,每个tab pan

javascript动态添加删除tabs标签的方法_javascript技巧

本文实例讲述了javascript动态添加删除tabs标签的方法.分享给大家供大家参考.具体实现方法如下: <html> <HEAD> <TITLE>网页对话</TITLE> <LINK href="style.css" type=text/css rel=stylesheet> <script> function $(obj) { var o = typeof(obj)=="object" ?

win8系统桌面快捷图标的名称显示为乱码原因及解决方法

  一.进入安全模式重新索引字库及整理菜单 1.以安全模式开机启动进入系统; 2.进入安全模式后等待大概一分钟左右,重启电脑,正常进入Windows,字体一般就能自动恢复.这是因为Windows在进入安全模式时会重新索引字库及整理菜单. 二.修改注册表. 1.使用快捷键Windows键+R打开运行,输入"Regedit"后回车,启动注册表编辑器,如图:输入"Regedit"后回车,启动注册表编辑器,如图: 提示:修改注册表有风险,请提前备份数据并在人士指导下慎重操作

xp桌面图标无法正常显示的解决方法

  可能在创建WindowsXP系统时,只考虑到它的稳定性,而没有在其他方面考虑太多,所以用户在使用XP系统时出现大大小小的问题.今天小编打开电脑就发现电脑桌面快速启动栏的显示桌面图标消失不见了.又是个莫名其妙的问题,不淡定的小编就向同事请教了方法,还真真是管用的,不对电脑进行大修理,竟然真的又复原了,重启了一下,真的还原了.下面小编跟大家一起分享下关于windows xp系统桌面图标消失的解决方法,感兴趣的用户不妨学习下! 方法如下: 1.鼠标点击xp系统电脑桌面"开始"菜单,选择&

隐藏 图标 android-Android图标隐藏和显示问题

问题描述 Android图标隐藏和显示问题 我想做一个APP能够隐藏其它的应用程序的图标,_假设手机或模拟器已经root过,怎么实现?_ 能否写个demon,发我393993507@qq.com邮箱.也可以贴出来大家一起研究.

js-Qt写的activeX插件,&amp;amp;lt;object&amp;amp;gt;标签无法正常隐藏显示操作

问题描述 Qt写的activeX插件,<object>标签无法正常隐藏显示操作 下边是我写的一个简单的例子,情况是这样的. 这个是用Qt写的一个IE插件显示3D地图的cab包.页面上我用div包裹一层 ,用来控制object标签的显示隐藏,页面初始化的时候默认是隐藏的.在需要查看的时候点击显示, 将此插件显示出来,不需要的时候还可以隐藏掉. 问题就在这,在页面初始化隐藏的时候是可以办到的,点击显示也是可以正常显示插件的,但就是在显示完以后, 再去点击隐藏就怎么也隐藏不掉了.我试用了各种方式了都

iphone-怎么垂直放置标签,条形区域显示名字

问题描述 怎么垂直放置标签,条形区域显示名字 如图,我想垂直显示UILabel,像正常的图片有100.200.300.400那样,Calculate Graph垂直对齐,显示标签如Risk那样. 解决方案 可以旋转标签哦: label.transform = CGAffineTransformMakeRotation(M_PI_2*3); // 90 degress 解决方案二: CGFloat DegreesToRadians(CGFloat degrees) { return degrees

快捷键-如何实现一键隐藏桌面图标,一键显示桌面图标。

问题描述 如何实现一键隐藏桌面图标,一键显示桌面图标. 如何实现一键隐藏桌面图标,一键显示桌面图标. 如何实现一键隐藏桌面图标,一键显示桌面图标. 解决方案 用findwindow找到桌面,然后showwindow隐藏/显示 http://www.shangxueba.com/jingyan/2421671.html 解决方案二: 打开"我的电脑"-工具-文件夹属性-在打开项目方式里选择"通过双击打开项目"即可. 快捷键WIN+D或WIN+M. 解决方案三: 在de

js-关于JS重复更改某标签属性,只显示最后一次更改内容

问题描述 关于JS重复更改某标签属性,只显示最后一次更改内容 嗯,我从Handler里读出Json: [{Num:2,Color:'Red'},Num:2,Color:'Yellow'},Num:2,Color:'Bule'},] 循环Json,读取颜色,把相关的div背景色改成颜色. 然而循环的话,div只会变成蓝色. 我想变成红色几秒,再变成黄色几秒,最后蓝色.请问有什么好方法吗? 解决方案 <div id='divcolor' >测试颜色</div> </body>