在选择Tabhost图​​像变化 [英] Tabhost image change on selection

查看:143
本文介绍了在选择Tabhost图​​像变化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图改变标签的图像与背景色为图像给出
这里是什么我也做了源...
 我也有这种审查
如何更改TabHost <制表符图片/ p>

问题出在哪里?

  mTabHst.addTab(mTabHst.newTabSpec(\"tab_test1\").setIndicator(null,res.getDrawable(R.drawable.custom_widget_list))
                .setContent(ⅰ));     mTabHst.addTab(mTabHst.newTabSpec(\"tab_test2\").setIndicator(null,res.getDrawable(R.drawable.custom_widget_trans))
                .setContent(J));
         INT tabCount = mTab​​Hst.getTabWidget()getTabCount()。
         对于(INT R = 0;为r tabCount; R ++){
             最后查看视图= mTab​​Hst.getTabWidget()getChildTabViewAt(R)。             如果(查看!= NULL){
                 //减少标签的高度
                 。view.getLayoutParams()*高= 0.70;             }
         }
         mTabHst.setCurrentTab(0);}

下面是我的XML标签

 &LT; TabWidget
        机器人:ID =@机器人:ID /标签
        机器人:layout_width =FILL_PARENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignParentTop =真
        机器人:layout_gravity =中心
        机器人:背景=#FFFFFF
        机器人:tabStripEnabled =假
        机器人:比重=中心/&GT;

custom_widget_list.xml

 &LT;项目机器人:可绘制=@绘制/ member_pink机器人:STATE_ pressed =真正的机器人:state_selected =false的机器人:颜色=#FFFFFF &GT;&LT; /项目&GT;
&LT;项目机器人:可绘制=@绘制/用户名机器人:STATE_ pressed =false的机器人:state_selected =false的机器人:颜色=#FFFFFF&GT;&LT; /项目&GT;
&LT;项目机器人:可绘制=@绘制/ member_pink机器人:STATE_ pressed =false的机器人:state_selected =真正的机器人:颜色=#FF00FF&GT;&LT; /项目&GT;

custom_widget_trans.xml

 &LT;?XML版本=1.0编码=UTF-8&GT?;
   &LT;选择的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android&GT;
&LT;项目机器人:可绘制=@绘制/ member_pink机器人:STATE_ pressed =真正的机器人:state_selected =false的机器人:颜色=#FFFFFF&GT;&LT; /项目&GT;
   &LT;项目机器人:可绘制=@绘制/ member4机器人:STATE_ pressed =false的机器人:state_selected =false的机器人:颜色=#FFFFFF&GT;&LT; /项目&GT;
    &LT;项目机器人:可绘制=@绘制/ member_pink机器人:STATE_ pressed =false的机器人:state_selected =真正的机器人:颜色=#FF00FF&GT;&LT; /项目&GT;

下面是截图:

和这里是屏幕2。


解决方案

您只需要为您的选项卡中设置选择。创建一个视图,并使用您的选择。

第一步:在其中创建方法将返回查看与您选择的背景

 私人浏览getTabIndicator(){
    查看查看=新的视图(本);
    view.setBackgroundResource(R.drawable.tab_selector);
    返回视图。
}

第二步:让您在tab_selector.xml RES /文件夹绘制

 &LT;?XML版本=1.0编码=UTF-8&GT?;
&LT;选择的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android&GT;
    &LT;! - 有源标签 - &GT;
&LT;项目的android:state_selected =真正的机器人:state_focused =假
    机器人:STATE_ pressed =false的机器人:可绘制=@绘制/ tab_bg_selected/&GT;
&LT;! - 无效标签 - &GT;
&LT;项目的android:state_selected =false的机器人:state_focused =假
机器人:STATE_ pressed =false的机器人:可绘制=@绘制/ tab_bg_unselected/&GT;
&LT;! - pressed标签 - &GT;
&LT;项目的android:STATE_ pressed =真正的机器人:可绘制=@机器人:彩色/透明/&GT;
&LT;! - 选定的选项卡(使用D-PAD) - &GT;
&LT;项目的android:state_focused =真正的机器人:state_selected =真
机器人:STATE_ pressed =false的机器人:可绘制=@机器人:彩色/透明/&GT;
&LT; /选择&GT;

第三步:立即setIndicator()将自定义视图作为指标,选择将管理的背景图片

<$p$p><$c$c>mTabHst.addTab(mTabHst.newTabSpec(\"tab_test2\").setIndicator(getTabIndicator()).setContent(j));

希望它会帮助你。

I tried to change tab image with background color as given in image here is the source what i have done... i have also reviewed this How to change the Tabs Images in the TabHost

where is the problem?

       mTabHst.addTab(mTabHst.newTabSpec("tab_test1").setIndicator(null,res.getDrawable(R.drawable.custom_widget_list))
                .setContent(i));   

     mTabHst.addTab(mTabHst.newTabSpec("tab_test2").setIndicator(null,res.getDrawable(R.drawable.custom_widget_trans))
                .setContent(j));


         int tabCount = mTabHst.getTabWidget().getTabCount();
         for (int r = 0; r < tabCount; r++) {
             final View view = mTabHst.getTabWidget().getChildTabViewAt(r);

             if ( view != null ) {
                 // reduce height of the tab
                 view.getLayoutParams().height *= 0.70;

             }
         }


         mTabHst.setCurrentTab(0); 

}

Here is my tab xml

 <TabWidget
        android:id="@android:id/tabs"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true" 
        android:layout_gravity="center"
        android:background="#FFFFFF"
        android:tabStripEnabled="false" 
        android:gravity="center"  />

custom_widget_list.xml

<item android:drawable="@drawable/member_pink" android:state_pressed="true"   android:state_selected="false" android:color="#FFFFFF"></item>
<item android:drawable="@drawable/username" android:state_pressed="false" android:state_selected="false" android:color="#FFFFFF"></item>
<item android:drawable="@drawable/member_pink" android:state_pressed="false" android:state_selected="true" android:color="#FF00FF"></item>

custom_widget_trans.xml

    <?xml version="1.0" encoding="utf-8"?>
   <selector xmlns:android="http://schemas.android.com/apk/res/android" > 
<item android:drawable="@drawable/member_pink" android:state_pressed="true"      android:state_selected="false" android:color="#FFFFFF"></item>
   <item android:drawable="@drawable/member4" android:state_pressed="false"   android:state_selected="false" android:color="#FFFFFF"></item>
    <item android:drawable="@drawable/member_pink" android:state_pressed="false"  android:state_selected="true" android:color="#FF00FF"></item>

Here is Screenshot:

and here is the screen 2.

解决方案

You just need to set selector for your Tabs. Create a view and use your selector.

Step1: Create method in your which will return view with your selector background.

private View getTabIndicator(){
    View view = new View(this);
    view.setBackgroundResource(R.drawable.tab_selector);
    return view;
}

Step2: Keep your tab_selector.xml in res/drawable folder.

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!--  Active tab -->
<item android:state_selected="true" android:state_focused="false"
    android:state_pressed="false" android:drawable="@drawable/tab_bg_selected" />
<!--  Inactive tab -->
<item android:state_selected="false" android:state_focused="false"
android:state_pressed="false" android:drawable="@drawable/tab_bg_unselected" />
<!--  Pressed tab -->
<item android:state_pressed="true" android:drawable="@android:color/transparent" />
<!--  Selected tab (using d-pad) -->
<item android:state_focused="true" android:state_selected="true"
android:state_pressed="false" android:drawable="@android:color/transparent" />
</selector>

Step3: Now setIndicator() will have custom view as indicator and selector will manage background images.

mTabHst.addTab(mTabHst.newTabSpec("tab_test2").setIndicator(getTabIndicator()).setContent(j));

Hope it will help you..

这篇关于在选择Tabhost图​​像变化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆