为什么我TabHost的setIndicator设置了图片,但是我的应用显示却显示不出来呢

javamy004 2013-09-17 11:09:45

// th_host = (TabHost) this.findViewById(R.id.th_host);
th_host = getTabHost();
TabSpec ts_list = th_host.newTabSpec("List");
ts_list.setIndicator("列表",
getResources().getDrawable(R.drawable.list));
ts_list.setContent(R.id.lv_address);
th_host.addTab(ts_list);
TabSpec ts_edit = th_host.newTabSpec("Edit");
ts_edit.setIndicator("添加",
getResources().getDrawable(R.drawable.restaurant));
ts_edit.setContent(R.id.tb_details);
th_host.addTab(ts_edit);


哪里有问题呢?

谢谢
...全文
1527 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
old donkey 2014-04-14
  • 打赏
  • 举报
回复
这个view可是是任何你自定义的就行了
old donkey 2014-04-14
  • 打赏
  • 举报
回复
setIndicator的时候直接加上一个view就可以了
lishaman 2013-12-24
  • 打赏
  • 举报
回复
下面这样试试: TabHost mTabHost = getTabHost(); LayoutInflater inflater_tab1 = LayoutInflater.from(this); inflater_tab1.inflate(R.layout.mgtlayout, mTabHost.getTabContentView()); inflater_tab1.inflate(R.layout.testlayout, mTabHost.getTabContentView()); inflater_tab1.inflate(R.layout.conflayout, mTabHost.getTabContentView()); inflater_tab1.inflate(R.layout.runlayout, mTabHost.getTabContentView()); //mTabHost.setBackgroundDrawable(getResources().getDrawable(R.drawable.tab_bg_top)); mTabHost.addTab(mTabHost .newTabSpec("tab_mgt") .setIndicator("系统管理",getResources().getDrawable(R.drawable.ic_home)) .setContent(R.id.LinearLayoutmgt) ); mTabHost.addTab(mTabHost .newTabSpec("tab_test") .setIndicator("测试模式",getResources().getDrawable(R.drawable.ic_test)) .setContent(R.id.LinearLayouttest) ); mTabHost.addTab(mTabHost .newTabSpec("tab_conf") .setIndicator("设置模式",getResources().getDrawable(R.drawable.ic_set)) .setContent(R.id.LinearLayoutconf) ); mTabHost.addTab(mTabHost .newTabSpec("tab_run") .setIndicator("运行模式",getResources().getDrawable(R.drawable.ic_run)) .setContent(R.id.LinearLayoutrun) );
simimasaiya 2013-12-23
  • 打赏
  • 举报
回复
楼主可以在AndroidManifest的Application中改变一下程序的主题: <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@android:style/Theme.Black" >这里改成了Tehme.Black
coder_cp 2013-12-06
  • 打赏
  • 举报
回复
个人感觉如下: 现在的代码貌似不支持同时显示图片和文字一样,你去看系统的源代码,在TabHost.java中。
final boolean exclusive = iconView.getVisibility() == View.GONE;
   final boolean bindIcon = !exclusive || TextUtils.isEmpty(mLabel);
 if (bindIcon && mIcon != null) {
                iconView.setImageDrawable(mIcon);
                iconView.setVisibility(VISIBLE);
            }
这里有一个exclusive判断ImageView是否显示。再看对应的tab_indicator_holo.xml文件。
<ImageView
        android:id="@android:id/icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:visibility="gone" />
看到没有,这里是不显示图片的,也就是说,只有在文字为空的时候才显示图片。 个人理解是android自己定义的布局吧。 如果你把AndroidManifest.xml中的代码去掉:
	    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />
是可以显示的,应该是以前的代码支持双显示吧。------以上为个人想法。
javamy004 2013-09-19
  • 打赏
  • 举报
回复
我发现只要我删除Manifest下面的这个设置就可以正常显示了 这是为什么呢、? <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" />

80,469

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧