选择器按钮在我的 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

【讨论】:

请问我必须添加什么属性? 对不起,它是一个类型,而不是 使它成为 【参考方案4】:

我终于解决了朋友指南的问题。我把代码改成了这个并且工作得很好。

<?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 按钮单击在 Firefox 上不起作用

.click() 在单选按钮上不起作用

直接指向其他人的 HTML 按钮链接在 Github 页面上不起作用

android - 自定义按钮(使用选择器文件)不起作用

Flutter GestureDetector 在按钮上不起作用

选择器中的 Android 按钮形状不起作用