2012-06-23 2 views
0

У меня есть относительная компоновка с двумя текстовыми элементами внутри. Как изменить цвет текста TextViews при нажатии RelativeLayout?Как уловить состояние RelativeLayout нажатием на Android?

Я пробовал использовать селекторы, но Relative Layout не поддерживает атрибут цвета текста.

Также проверенное состояние фиксации Relative Layout с OnFocus и OnTouch Listeners, но они не работают (OnFocusChangeListener) или работают в одной стороне (OnTouchListener).

Код:

<RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="243dp" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:background="@drawable/singup_button_selector" 
     android:clickable="true" 
     android:focusable="true" 
     android:gravity="center" 
     android:id="@+id/sungup" 
     android:textColor="@drawable/singup_button_text_selector" 
     android:focusableInTouchMode="true"> 

     <TextView 
      android:id="@+id/singupTV1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:layout_centerHorizontal="true" 
      android:text="@string/singup" 
      android:textColor="#3c5775"/> 




     <TextView 
      android:id="@+id/singupTV2" 
      android:layout_width="300dp" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/singupTV1" 
      android:layout_marginTop="15dp" 
      android:gravity="center" 
      android:text="@string/singup_extended" 
      android:textColor="#506378" 
      android:textSize="15dp" /> 

    </RelativeLayout> 

ответ

0

Вы можете установить onClickListener на RelativeLayout, то в методе OnClick, изменить цвет текста в обоих TextViews в вашем коде.

+0

Не так, потому что он работает только после выпуска пальца. – bvitaliyg

+0

Его необходимо начинать с касания пальца и останавливаться, когда я отпускаю палец. – bvitaliyg

0

Для меня работала установка OnTouchListener.

setOnTouchListener(new OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) 
    { 
     if(event.getAction() == MotionEvent.ACTION_DOWN || event.getAction() == MotionEvent.ACTION_MOVE) { 
      // focus in 
     } else{ 
      // focus out 
     } 

     return false; 
    } 
}); 
Смежные вопросы