【发布时间】:2013-10-02 16:26:10
【问题描述】:
我正在尝试构建一个应用程序,其中有 5 个选项卡,每个选项卡都加载自己的特定片段,我正在寻找一种在片段之间切换时如何更改选项卡图标的方法。
我尝试通过更改片段类中的图像来设置它,但是当我单击另一个选项卡时它仍然存在,而不是变回“非活动图像图标”
不使用操作栏,也不使用 ViewPager,这 5 个选项卡只是可点击的 ImageView,而不是 TabHost
感谢您的帮助。
【问题讨论】:
我正在尝试构建一个应用程序,其中有 5 个选项卡,每个选项卡都加载自己的特定片段,我正在寻找一种在片段之间切换时如何更改选项卡图标的方法。
我尝试通过更改片段类中的图像来设置它,但是当我单击另一个选项卡时它仍然存在,而不是变回“非活动图像图标”
不使用操作栏,也不使用 ViewPager,这 5 个选项卡只是可点击的 ImageView,而不是 TabHost
感谢您的帮助。
【问题讨论】:
我假设您使用ActionBar 作为标签,如果没有,请参阅this example。
您可以使用ActionBar.Tab.setIcon() 设置标签的图标。
【讨论】:
从片段设置标签图标是非常糟糕的主意,您应该从 Activity 设置图标(例如 onCreate 方法)。您可能需要为每个选项卡图标(已选择和默认图标)创建选择器,在此处阅读选择器: http://developer.android.com/guide/topics/resources/drawable-resource.html
您为每个选项卡创建 1 个文件。例如 ic_tabs_first.xml。你有两个图标,一个 ic_tabs_first_default.png,第二个 ic_tabs_first_selected.png。 你的 ic_tabs_first.xml 应该是这样的:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/ic_tabs_first_selected" /> <!-- pressed -->
<item android:state_selected="true"
android:drawable="@drawable/ic_tabs_first_selected" /> <!-- selected -->
<item android:drawable="@drawable/ic_tabs_first_default" /> <!-- default -->
</selector>
【讨论】: