我知道如何将图标放在每个选项卡上,这没问题。我也遇到了这一点:[几乎相同的东西上的堆叠溢出线] [1

我遵循了这个问题的链接之一,发现[this] [2

据说使用XML中定义的选择器几乎是这样做的。但是没有与IT相关的ID,因此我不确定如何将选择器功能作为绘制功能,以便我可以将其用作标签的图标。也许我以错误的方式进行操作。但这就是我所拥有的,显然缺少一些东西。

<selector
    android:id="@+id/myselector"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Non focused states -->
    <item
        android:state_focused="false"
        android:state_selected="false"
        android:state_pressed="false"
        android:drawable="@drawable/darklogo" />
    <item
        android:state_focused="false"
        android:state_selected="true"
        android:state_pressed="false"
        android:drawable="@drawable/lightlogo" />

    <!-- Focused states -->
    <item
        android:state_focused="true"
        android:state_selected="false"
        android:state_pressed="false"
        android:drawable="@drawable/lightlogo" />
    <item
        android:state_focused="true"
        android:state_selected="true"
        android:state_pressed="false"
        android:drawable="@drawable/lightlogo" />

    <!-- Pressed -->
    <item
        android:state_pressed="true"
        android:drawable="@drawable/lightlogo" />
</selector>

在我的代码中,使用:

  host.addTab(host.newTabSpec("three")  
                .setIndicator("map",drawables)  
                .setContent(new Intent(this, Map.class))); 

目前,可绘制只是对可绘制图像资源的引用。如何使选择器可绘制?

这是我的问题[1]: 更新Android选项卡图标 [2]: http://groups.google.com/group/android-evelopers/browse_thread/thread/thread/ef3bdebcb715b385

有帮助吗?

解决方案

您在此包含的XML是定义可绘制的方法,使您可以嵌入案例语句。根据分配给的视图状态,它提出了不同的绘制。作为绘制,您应该将其保存为XML文件 res/drawable 您项目的文件夹(例如 tabselector.xml).

要将其用于TABHOST,您需要像往常一样构造表(如图所示) 教程示例).

然后,当您将每个选项卡添加到主机时,您可以指定 tabselector 如下所示的“ TAB 1”所示为指示灯。

Drawable mySelector = getResources().getDrawable(R.drawable.tabselector);

mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator("TAB 1", mySelector).setContent(R.id.textview1));
mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator("TAB 2").setContent(R.id.textview2));

注意:你 不能 此时更改图标后面的标签背景的颜色。

其他提示

您可以将视图用作指示器,这样,您可以按照自己的意愿进行自定义。

mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator(View MyView).setContent(R.id.textview1));
mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator("TAB 2").setContent(R.id.textview2));

第一个选项卡将使用视图作为其指标,第二个标签将使用视图。看看实际的TABSPEC类(http://developer.android.com/reference/android/widget/tabhost.tabspec.html).

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top