API 21 和 API 23 上的不同选择器行为
Different selector behavior on API 21 and API 23
这是什么魔法?
Api 23:
Api 21:
我正在尝试实现自定义复选框选择器。经过几个小时试图找出我的代码有什么问题后,我得出的结论是选择器在不同 api 级别上呈现不同。上图来自 AS,但我在真实设备上遇到了相同的行为。
如果你想测试一下,这里是代码:
<item
android:state_checked="false">
<layer-list>
<item>
<shape android:innerRadiusRatio="5"
android:shape="ring"
android:thickness="0dp"
android:useLevel="false">
<solid
android:width="1dp"
android:color="#08aa92"/>
</shape>
</item>
<item>
<shape android:innerRadiusRatio="2"
android:shape="ring"
android:thickness="0dp"
android:useLevel="false">
<stroke
android:width="2dp"
android:color="#cccccc"/>
</shape>
</item>
</layer-list>
</item>
我的问题是:我该如何解决这个问题?
编辑 1:它似乎与 ring shapes for L preview not working 有关,但我还没有成功。
好吧,我仍然不知道 API 23 有什么问题,但我通过将第一个选择器项更改为:
设法解决了这个问题
<item>
<shape android:innerRadiusRatio="1000"
android:shape="ring"
android:thickness="10dp"
android:useLevel="false">
<solid android:width="1dp"
android:color="#08aa92"/>
</shape>
</item>
只有厚度和android:innerRadiusRatio改变了。
这是什么魔法?
Api 23:
Api 21:
我正在尝试实现自定义复选框选择器。经过几个小时试图找出我的代码有什么问题后,我得出的结论是选择器在不同 api 级别上呈现不同。上图来自 AS,但我在真实设备上遇到了相同的行为。
如果你想测试一下,这里是代码:
<item
android:state_checked="false">
<layer-list>
<item>
<shape android:innerRadiusRatio="5"
android:shape="ring"
android:thickness="0dp"
android:useLevel="false">
<solid
android:width="1dp"
android:color="#08aa92"/>
</shape>
</item>
<item>
<shape android:innerRadiusRatio="2"
android:shape="ring"
android:thickness="0dp"
android:useLevel="false">
<stroke
android:width="2dp"
android:color="#cccccc"/>
</shape>
</item>
</layer-list>
</item>
我的问题是:我该如何解决这个问题?
编辑 1:它似乎与 ring shapes for L preview not working 有关,但我还没有成功。
好吧,我仍然不知道 API 23 有什么问题,但我通过将第一个选择器项更改为:
设法解决了这个问题 <item>
<shape android:innerRadiusRatio="1000"
android:shape="ring"
android:thickness="10dp"
android:useLevel="false">
<solid android:width="1dp"
android:color="#08aa92"/>
</shape>
</item>
只有厚度和android:innerRadiusRatio改变了。