我正在尝试设置相对布局背景颜色,当用户只保留它时,然后在它们松开后恢复,但似乎无法让它响应。
我的活动的xml看起来如此:
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="0dp"
android:id="@+id/one"
android:background="@drawable/preferencesbg"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:clickable="true">
我在其他地方看到的并将背景设置为可绘制的
preferencesbg.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="false" android:drawable="@color/white"/>
<item android:state_pressed="true" android:drawable="@color/darkblue" />
<item android:drawable="@color/white" />
</selector>
但无论出于何种原因仍然无法使其发挥作用。
这是我试过的一些java,但最终删除它,现在除了活动中的onCreate方法之外什么都没有,
final RelativeLayout rl = (RelativeLayout) findViewById(R.id.one);
rl.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
rl.setBackgroundColor(R.color.darkblack);
}
});
答案 0 :(得分:1)
首先,如果您的RelativeLayout不包含其他元素,请将android:layout_height
设置为wrap_content
,以使布局高度超过0dp。
然后将您的项目更改为:
<item android:state_pressed="false" android:drawable="@color/white"/>
<item android:state_pressed="true" android:drawable="@color/darkblue" />
然后你的背景应该改变你想要的方式而不用编写任何Java代码。