选择器按钮在我的 android 上的按钮上不起作用。如何解决?
Posted
技术标签:
【中文标题】选择器按钮在我的 android 上的按钮上不起作用。如何解决?【英文标题】:selector_button dosnt work on my buttons on android.how reslove? 【发布时间】:2014-02-02 04:08:26 【问题描述】:你好 *** 的朋友们。我在下面写了selector_button.xml
,让我的按钮点击起来更漂亮。但这根本不影响我的按钮。我哪里错了?
这是selector_button.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- When clicked -->
<item android:state_pressed="true"
android:state_selected="true" >
<shape >
<gradient
android:angle="90"
android:centerColor="@color/Lightgray"
android:endColor="@color/White"
android:startColor="@color/LightBlue"/>
<corners android:radius="12dip" />
<stroke
android:
android:color="@color/LightBlue" />
</shape>
</item>
<!-- When not clicked-->
<item >
<shape >
<gradient
android:angle="90"
android:centerColor="#ff008888"
android:endColor="@color/LightBlue"
android:startColor="@color/Lightgray"/>
<corners android:radius="12dip" />
<stroke
android:
android:color="@color/LightBlue" />
</shape>
</item>
</selector>
【问题讨论】:
【参考方案1】: <!-- When not clicked-->
<item android:state_pressed="false"> <!-- you need to define ur state to false-->
<shape >
<gradient
android:angle="90"
android:centerColor="#ff008888"
android:endColor="@color/LightBlue"
android:startColor="@color/Lightgray"/>
<corners android:radius="12dip" />
<stroke
android:
android:color="@color/LightBlue" />
</shape>
</item>
【讨论】:
【参考方案2】:改成这个(使用你的颜色)
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- When clicked -->
<item android:state_pressed="true"><shape>
<gradient android:angle="90"
android:centerColor="#999966"
android:endColor="@android:color/white"
android:startColor="#5E5EFF" />
<corners android:radius="12dip" />
<stroke android:
android:color="#5E5EFF" />
</shape></item>
<!-- When not clicked -->
<item android:state_selected="false"><shape>
<gradient android:angle="90"
android:centerColor="#ff008888"
android:endColor="#5E5EFF"
android:startColor="#999966" />
<corners android:radius="12dip" />
<stroke android:
android:color="#5E5EFF" />
</shape></item>
</selector>
【讨论】:
【参考方案3】:将此属性添加到您的第二个项目标签 ...
并确保将此按钮的背景设置为@drawable/selector_button
【讨论】:
请问我必须添加什么属性? 对不起,它是一个类型,而不是我终于解决了朋友指南的问题。我把代码改成了这个并且工作得很好。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- When clicked -->
<item android:state_pressed="true">
<shape >
<gradient
android:angle="90"
android:centerColor="@color/Lightgray"
android:endColor="@color/White"
android:startColor="@color/LightBlue"/>
<corners android:radius="12dip" />
<stroke
android:
android:color="@color/LightBlue" />
</shape>
</item>
<!-- When not clicked-->
<item android:state_pressed="false" >
<shape >
<gradient
android:angle="90"
android:centerColor="#ff008888"
android:endColor="@color/LightBlue"
android:startColor="@color/Lightgray"/>
<corners android:radius="12dip" />
<stroke
android:
android:color="@color/LightBlue" />
</shape>
</item>
</selector>
【讨论】:
【参考方案5】:兄弟试试这个方法:
在xml
中设置标签为:
android:tag="0"
在onClick
函数中:
String tag = (String) v.getTag();
if(!tag.equalsIgnoreCase("0"))
//apply which you want(styling)
v.setBackgroundResource(R.drawable.active_baner_community);
v.setTag("0");
else
//apply which you want(styling)
v.setBackgroundResource(R.drawable.baner_community);
v.setTag("1");
【讨论】:
@Revind Maurya 谢谢。但我必须在哪里写 android:tag=0 ?在有我的按钮的 xml 中还是在 selector_button.xml 中? 在你的按钮兄弟上你想改变哪个按钮的样式 您还必须在按钮上应用点击列表器。以上是关于选择器按钮在我的 android 上的按钮上不起作用。如何解决?的主要内容,如果未能解决你的问题,请参考以下文章
直接指向其他人的 HTML 按钮链接在 Github 页面上不起作用