Java 选择器不适用于单击按钮效果
我想在单击itemviewholder时更改其背景色。对此,我尝试使用“选择器”和“状态按下”,但不起作用 在这个测试代码中,我尝试用一个按钮和一个线性布局来进行测试。我这样做是因为在我的真实代码中,itemviewholder将位于LinearLayout内部。这个按钮也是用来测试的。我使用的是API 16 为什么不工作(当我点击按钮或线性布局时,什么也没有发生)以及如何修复 colors.xmlJava 选择器不适用于单击按钮效果,java,android,android-layout,onclick,Java,Android,Android Layout,Onclick,我想在单击itemviewholder时更改其背景色。对此,我尝试使用“选择器”和“状态按下”,但不起作用 在这个测试代码中,我尝试用一个按钮和一个线性布局来进行测试。我这样做是因为在我的真实代码中,itemviewholder将位于LinearLayout内部。这个按钮也是用来测试的。我使用的是API 16 为什么不工作(当我点击按钮或线性布局时,什么也没有发生)以及如何修复 colors.xml <?xml version="1.0" encoding="utf-8"?> <
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
</resources>
我相信这是因为你的选择和它的设置。选择器中的默认
项必须是最后一项。试一试
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<!-- pressed -->
<item android:state_pressed="true"
android:drawable="@color/colorPrimaryDark"/>
<!-- default -->
<item android:drawable="@color/colorAccent"/>
</selector>
正在工作,但只需按一下按钮即可。我怎样才能对线性布局做同样的事情呢?只需添加安卓:clickable=“true”。现在一切正常。谢谢
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_centerHorizontal="true"
android:background="@drawable/item_effect"></LinearLayout>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:background="@drawable/item_effect"/>
</RelativeLayout>
package br.com.roger.selectortest;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<!-- pressed -->
<item android:state_pressed="true"
android:drawable="@color/colorPrimaryDark"/>
<!-- default -->
<item android:drawable="@color/colorAccent"/>
</selector>