无法显示TabHost的setIndicator设置的图片的问题解决办法

时间:2023-02-11 06:38:40

无法显示TabHost的setIndicator设置的图片的问题解决办法

本想做一个 带有图片的 分页显示的demo

但是 自己的代码写的也木有问题 ,所以只有mainifest 有问题了

主要是用到了  Tabhost

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:id="@android:id/tabhost"

  >

<LinearLayout

     android:layout_width="fill_parent"

     android:layout_height="fill_parent"

  android:orientation="vertical"

     >

<TabWidget

         android:id="@android:id/tabs"

      android:layout_width="fill_parent"

      android:layout_height="wrap_content"   

   />

    

    

  <FrameLayout

      android:id="@android:id/tabcontent"

      android:layout_width="fill_parent"

      android:layout_height="0px"

       android:layout_weight="1"

      ></FrameLayout>

 

  </LinearLayout>

</TabHost>

xml 是没有错的

百思不得其解  上网等候了很多信息  ,

解决办法:

1.有人说  mainfiest 去掉 use-sdk 我试了确实出现图片,但是图片问题却不能正常显示,

现在的代码貌似不支持同时显示图片和文字一样,你去看系统的源代码,在TabHost.java中。
Java code

?

1
2
3
4
5
6
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文件。

Java code

?

1
2
3
4
5
6
<ImageView
        android:id="@android:id/icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:visibility="gone" />

看到没有,这里是不显示图片的,也就是说,只有在文字为空的时候才显示图片。 

2.把主题改一下就对了

android:theme="@android:style/Theme.Black"

原因:

需要读一读android源码  猜想 肯定是 前一个主题

(>android4.0)     apptheme不支持 文字图片一起显示

Theme.Black支持

无法显示TabHost的setIndicator设置的图片的问题解决办法

无法显示TabHost的setIndicator设置的图片的问题解决办法

搞定啦