我有相对布局,里面有两个文本视图。当按下相对布局时,如何更改文本颜色文本视图?
我尝试使用过选择器,但相对布局不支持文本颜色属性。
还尝试使用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>
您可以在 RelativeLayout 上设置 onClickListener,然后在 onClick 方法中,更改代码中两个 TextView 中的文本颜色。
对我有用的是设置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;
}
});