我正在尝试仅当用户握住它时设置相对布局的背景颜色,然后在他们放开但似乎无法使其响应后恢复原状。
我的活动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);
}
});
首先,如果您的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代码。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句