今天隨便寫點東西,畫了個界面,然後想給LinearLayout做個按下效果,結果發現不管我怎麼按都沒有效果。萬能的百度也沒查到是什麼原因,那我現在總結一下給控件設置的效果,不起作用大概有這麼幾種情況。
1.控件是否被其上層或底層控件覆蓋,並賦予控件其顏色。
如:在最底層的LinearLayout或RelativeLayout設置過background = "#FFFFFF";
解決辦法:去掉最底層或其上層顏色,或把其顏色設置爲透明色。
2.控件的selector寫的是否正確。
如:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/white"/>
<item android:state_focused="true" android:drawable="@color/dark_white"/>
<item android:state_pressed="true" android:drawable="@color/dark_white"/>
</selector>
你的selector是否跟我寫的順序一樣?哈哈,那你就錯啦!
解決方法:把默認顏色移到最下方,不然會一直沒有效果,像這樣:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:drawable="@color/dark_white"/>
<item android:state_pressed="true" android:drawable="@color/dark_white"/>
<item android:drawable="@color/white"/>
</selector>
3.xml中的控件是否添加過可點擊屬性。
如:
<LinearLayout
android:id="@+id/fragment_mine_about_layout"
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="@drawable/selector_mine_button_background"
android:orientation="horizontal">
解決方法:在其屬性中添加clickable屬性,使其可以點擊。
android:clickable="true"
在此記錄作爲參考。