古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。这篇文章主要讲述Android使用selector切换enable状态遇到的问题:只改变了颜色但是没改变形状相关的知识,希望能为你提供帮助。
如标题所示,昨天在使用selector的时候遇到了点问题
设计给出的轮播效果图是这样的
文章图片
我这边用的selector,实现的效果是这样的
文章图片
下面是代码
<
selector xmlns:android="
http://schemas.android.com/apk/res/android"
>
<
item android:state_enabled="
true"
>
<
shape android:shape="
oval"
>
<
solid android:color="
#ffffff"
/>
<
size android:width="
6dp"
android:height="
6dp"
/>
<
/shape>
<
/item>
<
item android:state_enabled="
false"
>
<
shape android:shape="
oval"
>
<
solid android:color="
#57ffffff"
/>
<
size android:width="
6dp"
android:height="
6dp"
/>
<
/shape>
<
/item>
<
/selector>
嗯,,,我觉得我应该把shape换成rectangle,加上圆角,换个长度,就像这样。
<
?xml version="
1.0"
encoding="
utf-8"
?>
<
selector xmlns:android="
http://schemas.android.com/apk/res/android"
>
<
item android:state_enabled="
true"
>
<
shape android:shape="
rectangle"
>
<
solid android:color="
#ffffff"
/>
<
size android:width="
18dp"
android:height="
6dp"
/>
<
corners android:radius="
3dp"
/>
<
/shape>
<
/item>
<
item android:state_enabled="
false"
>
<
shape android:shape="
rectangle"
>
<
solid android:color="
#57ffffff"
/>
<
size android:width="
6dp"
android:height="
6dp"
/>
<
corners android:radius="
3dp"
/>
<
/shape>
<
/item>
<
/selector>
然而编译之后看到现实出来的效果却不如与其那般,虽然轮播的时候颜色变了,但是形状并没有变化
啊这。。。。。
好吧找找解决办法,看看网上有没有带哥们遇到这个问题并把解决方法分享出来
好的,找到了!
https://stackoverflow.com/questions/38179431/android-selector-changes-color-but-not-size根据描述,我应该在设置指示点的enable之后对指示点调用一次requestLayout()方法
tvPosition.setText((realPosition + 1 - videoSize) + "
/"
+ imageSize);
pointGroup.getChildAt(realPosition).setEnabled(true);
pointGroup.getChildAt(realPosition).requestLayout();
if (pointGroup.getChildAt(lastPointIndex) != null) {
pointGroup.getChildAt(lastPointIndex).setEnabled(false);
pointGroup.getChildAt(lastPointIndex).requestLayout();
}
【Android使用selector切换enable状态遇到的问题(只改变了颜色但是没改变形状)】OK,编译一下,成了!
文章图片
推荐阅读
- [nowcoder5667H]Happy Triangle
- IDEA创建maven项目,webapp没有被标识,无法识别
- Selenium IDE-定位策略
- Selenium IDE-测试命令详细用法详解
- Selenium教程介绍
- Selenium IDE-登录测试用法图解
- Selenium IDE功能用法详细图解
- Android 获取系统时间以及实时刷新时间
- android 虚拟机(avd) 运行过程中死机