寫selector的xml檔案時,需注意item的順序,不帶狀態的item放在最後,否則selector無效
為按鈕寫了一個selector,一個正常狀態,一個點選的狀態,用了兩張不同的圖片。以求達到更好地使用者體驗。xml格式都正確,設定到ImageButton的src屬性中。但是點選時圖片並沒有變成預想的那張。
經過查詢,原來是在寫selector的xml時,item的順序有個嚴格的要求:正常狀態的item必須放到最後,否則將不產生效果。
至於原因,不是很清楚。可能是Android疏忽了的一個小細節。
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_focused="false"
android:state_pressed="true"
android:drawable="@drawable/arrow_pressed"/>
<!-- 正常狀態的item必須放在最後,否則無法生效 -->
<item android:drawable="@drawable/arrow_normal"/>
</selector>
正常狀態:
點選狀態:
相關文章
- AndroidTips:selector的disable狀態為什麼無效?Android
- Android Selector的簡寫Android
- Flutter狀態管理Provider(四) Selector使用FlutterIDE
- 如果陣列中存在 item,則返回元素在陣列中的位置,否則返回 -1陣列
- 使用RecyclerView動態改變item時遇到的坑View
- swift 中的 SelectorSwift
- Swift中的SelectorSwift
- 臨時檔案的順序和絕對檔案號
- Java NIO Selector 的使用Java
- swift中 Selector的使用Swift
- ListView中selector的用法View
- 解析XML檔案時,無效的XML 字元 (Unicode: 0x7)異常處理XML字元Unicode
- web.xml 檔案 配置載入順序WebXML
- Android中的Selector的用法Android
- Scrapy框架的使用之Selector的用法框架
- [Blue Prism] Data item 的使用
- ITEM中的屬性控制
- ITEM中的UNIT OF PRIMARY.
- Linux啟動時讀取配置檔案的順序Linux
- 順序控制和狀態機之間的差別
- Roslyn 分析器 讀取 csproj 專案檔案的 AdditionalFiles Item 的 Metadata 配置ROS
- FileList item()
- JavaScript item()JavaScript
- oracle啟動例項時使用引數檔案的順序Oracle
- item的介紹與使用-2.0
- Angular Ngrx store 裡的 Selector 介紹Angular
- $(selector).each()與$.each()方法的區別
- ListView,點選每一個Item,如何獲取當前Item的資料?View
- 自定義ListView的點選Item項後進入另一個activity背景色改變在pressed或selected等狀態時的顏色View
- CSS規則的執行順序CSS
- Android動態修改ListView中指定Item的元件屬性AndroidView元件
- 處理好item點選事件的gallery(畫廊)效果(無bug)事件
- ListView 實現帶有Filpper效果的左右滑動刪除 ItemView
- item_get
- sticky list item
- Item Import OverviewImportView
- Free Item in PO
- Item定義