标签:膨胀标签背后的无法解释的视图

时间:2012-05-22 23:14:00

标签: android tabs

我有一个自定义标签活动,我已经使用SO提供了很多帮助。然而,我遇到了几个问题,我在这里找不到答案。

首先,所有选项卡状态都来自android apk选项卡资源,我调整了颜色。未选中的标签九补丁图片显示在每个标签下面,我无法让它消失,有任何建议吗?

其次,当我第一次进入选项卡活动时,焦点选项卡的文本不会更改,但是当我按下选项卡或移动到另一个选项卡并返回时,文本会更改。如何在压缩后显示焦点文本时显示初始焦点文本?

这是显示我的意思的图像;左侧的初始加载,右侧按下,两个图像都显示选项卡后面显示的未选择的标签图像:

我试图发布标签看起来如何但我的代表还不够高的图像。遗憾!

这是我正在膨胀的标签布局xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="75dp"
    android:layout_weight="1"
    android:background="@drawable/custom_tab_selector"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/ivTabIicon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true" />

    <TextView
        android:id="@+id/tvTabTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true" />

</RelativeLayout>

这是我的选择器XML

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- Active tab -->
    <item 
        android:drawable="@drawable/tab_selected" 
        android:state_focused="false" 
        android:state_pressed="false" 
        android:state_selected="true"/>

    <!-- Inactive tab -->
    <item 
        android:drawable="@drawable/tab_unselected"
        android:state_focused="false" 
        android:state_pressed="false" 
        android:state_selected="false"/>

    <!-- Pressed tab -->
    <item 
        android:drawable="@drawable/tab_press" 
        android:state_pressed="true"/>

    <!-- Selected tab (using d-pad) -->
    <item 
        android:drawable="@drawable/tab_focus" 
        android:state_focused="true" 
        android:state_pressed="false" 
        android:state_selected="true"/>

</selector>

这是我的活动java部分,它会膨胀并显示每个标签

// Initialize a TabSpec for each tab and add it to the TabHost
// Team tab
View tabTeamIndicator = LayoutInflater.from(this).inflate(R.layout.tab_team_layout, getTabWidget(), false);
spec = tabHost.newTabSpec("teamTab");
title = (TextView) tabTeamIndicator.findViewById(R.id.tvTabTitle);
title.setText("Team Manager");
icon = (ImageView) tabTeamIndicator.findViewById(R.id.ivTabIicon);
icon.setImageResource(R.drawable.custom_teamtab_icon);

spec.setIndicator(tabTeamIndicator);
spec.setContent(intentTeam);
tabHost.addTab(spec);

非常感谢您的帮助!顺便说一下,我在尝试它们的手机上的颜色比在模拟器中看起来要好得多!!!

编辑:更改主题标题

1 个答案:

答案 0 :(得分:2)

这里愚蠢​​的错误。包含选项卡小部件的xml布局具有

android:background="@drawable/custom_tab_selector"
其中的

属性导致选项卡的背景在后台第二次被绘制。