如何在Android中捕获相对布局按下状态



我有相对布局,里面有两个文本视图。当按下相对布局时,如何更改文本颜色文本视图?

我尝试使用过选择器,但相对布局不支持文本颜色属性。

还尝试使用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;
    }
});

相关内容

  • 没有找到相关文章

最新更新