今天随便写点东西,画了个界面,然后想给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"
在此记录作为参考。