相对布局背景暂停

时间:2013-12-07 21:23:00

标签: android xml

我正在尝试设置相对布局背景颜色,当用户只保留它时,然后在它们松开后恢复,但似乎无法让它响应。

我的活动的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);
            }
        });

1 个答案:

答案 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代码。