【问题标题】:selector_button dosnt work on my buttons on android.how reslove?选择器按钮在我的 android 上的按钮上不起作用。如何解决?
【发布时间】:2014-02-02 04:08:26
【问题描述】:

你好 Stackoverflow 的朋友们。我在下面写了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:width="0dip"       
                 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:width="0dip"       
                 android:color="@color/LightBlue" />
      </shape> 
</item>


</selector>

【问题讨论】:

    标签: android xml button 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:width="0dip"       
                 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:width="0dip"
                      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:width="0dip" 
                      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:width="0dip"       
                         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:width="0dip"       
                         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 中?
          • 在你的按钮兄弟上你想改变哪个按钮的样式
          • 您还必须在按钮上应用点击列表器。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-05-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-11-03
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多