如何在运行时更改Tabview。

时间:2011-12-05 06:27:49

标签: android tabs tabview

我想在android中运行时单击该选项卡上的Tab视图。

当我在“收藏夹”选项卡中单击时,会自动显示此选项卡图像,如“主页”选项卡..

请帮助我。

像这样 之前

enter image description here

之后

enter image description here

请举例......

提前致谢...

3 个答案:

答案 0 :(得分:1)

请参阅以下链接:

http://developer.android.com/guide/practices/ui_guidelines/icon_design_tab.html

要在选择或取消选择选项卡时自动更改图像,您可以使用以下xml代码:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- selected state -->
    <item android:drawable="@drawable/ic_tab_friends_selected"
          android:state_selected="true"
          android:state_pressed="false" />
    <!-- unselected state (default) -->
    <item android:drawable="@drawable/ic_tab_friends_unselected" />
</selector>

答案 1 :(得分:1)

要在选项卡状态更改时自动在选项卡图标图像之间切换,请使用放置在资源的可绘制文件夹中的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/home" android:state_selected="true" />   
 <!-- When not selected, use white-->    
<item android:drawable="@drawable/favorites" />
</selector>

请检查Tab Layout

答案 2 :(得分:0)

我有一个例子,没有解释和你的要求相同,但在改变一些条件后使用这个OR或添加一些条件你会得到你的解决方案。

如果我们想在运行时更改标签颜色或图像或文本颜色,那么我们使用此代码。

for(int i=0;i<host.getTabWidget().getChildCount();i++)
{
   host.getTabWidget().getChildAt(i).setBackgroundResource(R.drawable.tab_bg);
   TextView tv = (TextView) host.getTabWidget().getChildAt(i).findViewById(android.R.id.title); //Unselected Tabs
   tv.setTextColor(Color.parseColor("#ffffff"));
}
host.getTabWidget().getChildAt(host.getCurrentTab()).setBackgroundResource(R.drawable.tab_active_bg);// selected
TextView tv = (TextView) host.getCurrentTabView().findViewById(android.R.id.title); //for Selected Tab
tv.setTextColor(Color.parseColor("#000000"));

在此代码 host.getTabWidget()。getChildCount()中返回选项卡小部件的总数。例如,在这里显示图像4标签就在那里。

我希望它可以帮到你。 Gud运气好。 :)