gpt4 book ai didi

具有淡入/淡出持续时间的 Android 选择器最初是不可见的

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:09:23 24 4
gpt4 key购买 nike

我正在努力实现 ActionBar 中的图标不会离散地改变状态,而是通过淡入淡出的动画。当我将 android:enterFadeDurationandroid:exitFadeDuration 添加到选择器标签时,我的 drawable 最初是不可见的 - 当我点击它时,它会改变状态到 state_pressed(适本地输入淡入淡出持续时间),当我释放它时,它会变回正常可见的未选择状态。

我一定是遗漏了一些明显的东西,或者这是某种错误?

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" android:enterFadeDuration="150" android:exitFadeDuration="150">
<item android:drawable="@drawable/filters_toggle_icon_selected" android:state_focused="true"/>
<item android:drawable="@drawable/filters_toggle_icon_selected" android:state_pressed="true"/>
<item android:drawable="@drawable/filters_toggle_icon" android:state_focused="false" android:state_pressed="false"/>
</selector>

最佳答案

我有一个类似的问题,我的代码如下所示:

<selector xmlns:android="http://schemas.android.com/apk/res/android" 
android:enterFadeDuration="@android:integer/config_mediumAnimTime"
android:exitFadeDuration="@android:integer/config_mediumAnimTime" >
<item android:state_pressed="true" android:drawable="@color/pressed" />
<item android:drawable="@color/default" />
</selector>

起初,我发现了一个提示,可以去掉 enterFadeDuration,只使用 exitFadeDuration。这解决了初始隐身的问题,但在第一次交互期间 View 仍然逐渐隐身。

然后,我修改我的结构如下:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/default" />
<item>
<selector android:enterFadeDuration="@android:integer/config_mediumAnimTime"
android:exitFadeDuration="@android:integer/config_mediumAnimTime" >
<item android:state_pressed="true" android:drawable="@color/pressed" />
</selector>
</item>
</layer-list>

基本上,我只是将默认的可绘制对象推出了选择器。这是一种解决方法,它也适用于具有多个状态的选择器,但有一些值得注意的限制:

  • 默认可绘制对象作为底层始终可见。它适用于不透明的颜色,但透明度可能会导致不良结果。
  • 如果 View 以选择器测试的状态之一开始,仍然显示默认,因为选择器仍然以不可见状态开始。

可能不适用于原来的问题,但它是克服选择器的这种行为的考虑因素。

关于具有淡入/淡出持续时间的 Android 选择器最初是不可见的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21085690/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com