android - 标签图标在滑动时突出显示
问题描述
我在 Android 应用程序中自定义了我的标签,使其具有图标而不是文本。但是,文本标签在选择时会突出显示。我已经通过 OnTabSelectedListener 解决了这个问题,其中设置了一个更亮的图标。但是我仍然不知道如何在从一个页面滑动到另一个页面的一半以上时实现突出显示的原生效果。
有小费吗?提前致谢。
解决方案
而不是使用OnTabSelectedListener
,您应该使用根据它们是否被选中而改变自己的图标。
如果您的图标是矢量绘图,那么您可以使用颜色状态列表来自动更改它们的颜色。以下是铅笔图标的外观:
- res/color/blue_when_selected.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:color="#0000ff"/>
<item android:color="#aaaaaa"/>
</selector>
- res/drawable/ic_pencil.xml
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="@color/blue_when_selected"
android:pathData="M3,17.25V21h3.75L17.81,9.94l-3.75,-3.75L3,17.25z
M20.71,7.04c0.39,-0.39 0.39,-1.02 0,-1.41l-2.34,-2.34c-0.39,-0.39 -1.02,-0.39 -1.41,0l-1.83,1.83 3.75,3.75 1.83,-1.83z"/>
</vector>
现在,无论您在何处设置选项卡图标,如果您使用R.drawable.ic_pencil
,您将看到自动颜色切换。
如果您的图标是 .png 文件,那么您可以使用State list drawable来实现相同的效果。想象一下你有res/drawable-mdpi/icon_normal.png
和res/drawable-mdpi/icon_selected.png
。然后你可以有这个:
- res/drawable/icon.xml
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_selected="true"
android:drawable="@drawable/icon_selected"/>
<item
android:drawable="@drawable/icon_normal"/>
</selector>
同样,如果您使用R.drawable.icon
.png 文件,您会看到在两个 .png 文件之间自动切换。
推荐阅读
- python - 在python中生成随机时间戳列表
- python - 从 DateTime 系列中的多个 CSV 文件设置 MultiIndex DataFrame
- autohotkey - 全屏显示 Gui
- php - 我如何在 PHP 中获取 GIT 信息
- postgresql - 在 Heroku 中连接到 Postgres db 时出错
- c++ - 使用带有 std::condition_variable_any 的虚拟假锁是否安全?
- python - SQL 滚动窗口唯一计数
- jquery - 视频悬停 JQuery 条件 - 检查源是否为视频
- xml - 从添加到 TFS 测试用例工作项的自定义字段中打印文本
- amazon-web-services - 与 Amazon Redshift 同步