我遇到以下問題。我想爲tabbuton禁用狀態添加特殊圖像,但它不起作用。這是我在選擇器中所做的。如何使用xml優化Tabwidget按鈕的禁用狀態
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/active" android:state_pressed="true"/>
<item android:drawable="@drawable/unactive" android:state_selected=true"/>
<item android:drawable="@drawable/disabled" android:state_enabled="false"/>
<item android:drawable="@drawable/unactive"/>
</selector>
這是完全一樣選擇了一個「獨立」按鈕,但它不工作,它顯示禁用狀態,即使啓用按鈕時。我究竟做錯了什麼?
編輯:感謝@NightCrawler sugestions我發現,這是一個積極的非有效狀態的最佳選擇,但我還是不能讓state_enabled =「假」顯示不同勢狀態時,按鈕被禁用...
<item android:drawable="@drawable/active" android:state_selected="true"/>
<item android:drawable="@drawable/unactive" android:state_selected="false"/>
<item android:drawable="@drawable/disabled" android:state_enabled="false"/>
<item android:drawable="@drawable/unactive"/>
解決方法:我繼續實施殘疾狀態碼圖像切換:
這確實工作正常,但我仍然想知道是否有可能使用ONLY XML爲tabwidget中的按鈕定義禁用狀態。
結果: 所以更多的修補程序後,我發現爲什麼禁用狀態沒有註冊。在我的情況下,我使用按鈕的自定義佈局,可能任何定製tabhost的人都會這樣做,並且可能會在該佈局中顯示某種圖像。可以用上面定義的狀態繪製,然後將其應用於佈局中的圖像,而不是整個佈局。即使這個選擇是足有3種想要的狀態:
<item android:drawable="@drawable/menu_network_active" android:state_selected="true"/>
<item android:drawable="@drawable/menu_network_offline" android:state_enabled="false"/>
<item android:drawable="@drawable/menu_network_unactive"/>
但是當你關閉,你不得不手動設置您使用的是它的圖像爲禁用過這樣tabwidget按鈕:
wrapper.tabWidget.getChildAt(0).setEnabled(false);
icon = (ImageView) wrapper.tabWidget.getChildAt(0).findViewById(R.id.icon);
icon.setEnabled(false);
在在圖像上觸發該情況禁用的選擇器狀態並顯示期望的背景。
仍然沒有解釋道:左
唯一在這個謎缺少的是爲什麼選擇tabbutton時被觸發圖像的選中狀態,但不使用的狀態。我甚至嘗試在「圖標」上設置監聽器,以查看當您更改選項卡時是否調用了這些監聽器,但這並未發生,並且選擇器中的靜止圖像被設置爲選中狀態。所以基本上選擇是在佈局中的圖像觸發(不知何故),但禁用不是,我不知道爲什麼。 如果有人在看這個問題有一些發現,請添加評論或答案功能參考。 對於那些只是想要解決類似的錯誤,只是閱讀WOKRAROUND或FINDINGS部分,因爲這些可能會爲您解決它。
嘿,謝謝....它的工作 – Arshu