2013-12-07 3 views
0

Я пытаюсь установить относительный цвет фона компоновки, когда пользователь держит его только, а затем вернется обратно после того, как он отпустит, но не может заставить его ответить.Относительный макет фона на удержании

Мой 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

Вы сделали изменение цвета в onClickListener? Вставьте код Java – user2511882

+0

Я отправил некоторые из них, которые я попробовал, но в итоге удалил, потому что он установил неправильный цвет? Не знаю, почему, я хотел, чтобы он установил черный (# 000), но он установил какой-то странный серый цвет. – lostAstronaut

ответ

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.

+0

Вау, спасибо, я не знаю, почему мне было так тяжело с этим – lostAstronaut

Смежные вопросы