selector的按钮选中处理问题

1、背景介绍

在做Android项目开发的时候,有时我们需要对按钮做一些特殊的处理,比如按钮点击的时候会有一个动画的效果,实际上就是几张图片在短时间的切换;再比如有时候我们需要对界面的选择的时候,需要表示该项目是选中状态还是不被选中状态,怎么办,同样使用两张图片,分别表示不同状态就行了。

2、代码示例

2.1 按钮的代码示例

<selector
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/menubar_home_pressed" />
    <item android:state_focused="true" android:state_enabled="true" android:drawable="@drawable/menubar_home_pressed" />
    <item android:state_enabled="true" android:drawable="@drawable/menubar_home_normal" />
    <item android:state_focused="true" android:drawable="@drawable/menubar_home_pressed" />
</selector>

上面的这段代码,表示的是一个按钮的动画效果。

2.2 选中与失去焦点

</pre><pre name="code" class="html"><pre name="code" class="html"><selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/menubar_home_pressed" android:state_selected="true"/>
    <item android:drawable="@drawable/menubar_home_normal"/>
</selector>

上面的代码中,item部分第一行表示选中状态,第二行表示默认状态。

3、问题解析

在2.2中的代码,我们如果写成以下形式:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/menubar_home_normal"/>
    <item android:drawable="@drawable/menubar_home_pressed" android:state_selected="true"/>
</selector>

如果2.2中的item位置交换一下,第一行放在第二行的下面,那么我们可以在xml文件中看到一条黄色的波浪线。如下图所示:

我们可以看到,代码中有这样的提示:

This item is unreachable because a previous item (item #1) is a more general match than this one

这句话就是说第二行item之前,不能有元素出现。如果这样放置,会出现按钮一直是默认状态,而无法获得焦点的情况。

时间: 2024-11-09 03:35:42

selector的按钮选中处理问题的相关文章

Android使用selector自定义按钮

可视化编辑器,alt+1到9键,切换到工具区,tab键,选择按钮,esc键,返回编辑 Android使用selector自定义按钮 以前定义按钮的时候,想使用自定义的Button总是习惯在activity中获取该按钮然后,重写该按钮的onTouchListener然后在当中切换按钮的背景图片.这样做不但使activity中的代码变得臃肿而且不能该按钮不能达到重用的目的. 后来接触到了Android 中的selector挺好用的,下面详细讲解一下如何使用selector,首先在res\drawab

selector基础——按钮样式

1. <?xml version="1.0" encoding="utf-8" ?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 触摸时并且当前窗口处于交互状态 --> <item android:state_pressed="true" android:state_window_

android shape和selector共用按钮样式

项目中要使按钮点击和默认有不同效果,又要使listview的按钮有圆角效果,需要同时在drawable文件夹里面使用shape和selector属性,样式如下: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawab

多选按钮选中进行下一步

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> .center { height: 10%; width:10% ; margin: 0px auto; } </style> </head> <body> <

html,javaScript中怎么控制复选框checkbox的全选,全不选,以及全选中,全选按钮选中,其中一个或者多个没选,则全选按钮不被选中

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ include file="/commons/jsp/htmtag.jsp"%> <html><head> <meta http-equiv="Content-Type"

保持按钮选中状态,当点击另一个按钮后之前被选中的按钮恢复原样 实现代码

//可直接复制 测试 #import "ViewController.h" @interface ViewController () { NSInteger num; } @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; num = -1 ; [self layoutView]; } - (void)layoutView { int totalloc=3; int count =

selector的button选中处理问题

1.背景介绍 在做Android项目开发的时候,有时我们须要对button做一些特殊的处理,比方button点击的时候会有一个动画的效果,实际上就是几张图片在短时间的切换.再比方有时候我们须要对界面的选择的时候,须要表示该项目是选中状态还是不被选中状态.怎么办,相同使用两张图片.分别表示不同状态即可了. 2.代码演示样例 2.1 button的代码演示样例 <selector xmlns:android="http://schemas.android.com/apk/res/android

selector设置按钮或者一些点击控件在点击时的效果

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/ic_toc_white_24dp" android:state_pressed="true"

tabbar选中按钮的标题颜色和字体

@implementation XMGTabBarController /* 问题: 1.选中按钮的图片被渲染 -> iOS7之后默认tabBar上按钮图片都会被渲染 1.修改图片 2.通过代码 √ 2.选中按钮的标题颜色:黑色 标题字体大 -> 对应子控制器的tabBarItem 3.发布按钮显示不出来 */ // 只会调用一次 + (void)load { // 获取哪个类中UITabBarItem,appearance:只能在控件显示之前设置,才有作用 UITabBarItem *ite