选择器反应缓慢 - 有时在开始下一个活动之前根本不触发

2023-12-20

我定义了这个选择器:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- PRESSED -->
    <item android:state_pressed="true"
          android:drawable="@drawable/backarrow_blueshiny" />

    <!-- FOCUSED --> 
    <item android:state_focused="true"
          android:drawable="@drawable/backarrow_blackshiny" />

    <!-- DEFAULT -->
    <item android:drawable="@drawable/backarrow_blackshiny" />

</selector>

它与此按钮一起使用:

    <RelativeLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:background="@drawable/bottomborder_glossy">

        <!-- BACK -->
        <ImageButton
        android:id="@+id/filter_button_back"
        android:layout_width="90dip" 
        android:layout_height="wrap_content" 
        android:src="@drawable/selector_back_button"
        android:background="#00000000"
        android:layout_alignParentLeft="true"
        android:layout_alignParentBottom="true"/>

    </RelativeLayout>

onTouch 事件包括:

public boolean onTouch(View v, MotionEvent event)
{
    final int actionPerformed = event.getAction();
    final int widgetID = v.getId();

    if (actionPerformed == MotionEvent.ACTION_UP)
    {
        switch (widgetID)
        {
            case R.id.filter_button_back:
            {
                this.finish();
                break;
            }

        }

    }

    return false;
}

该按钮的作用是退出当前活动this.finish()然而,在我的测试中,按钮并不总是切换到“backarrow_blueshiny” - 即当按下非常快时。

所以问题是选择器的触发速度比 onTouch(MotionEvent.ACTION_UP) 事件慢。

我可以做些什么来确保选择器不“滞后”?


尝试在 OnTouchListener 中以编程方式将视图设置为按下:

@Override
public boolean onTouch(View v, MotionEvent event) {
    switch (event.getActionMasked()) {
        case MotionEvent.ACTION_DOWN:
            button.setPressed(true);
            break;
        case MotionEvent.ACTION_UP:
            // optional, should work without next line
            // button.setPressed(false); 
            break;
    }

    return false;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

选择器反应缓慢 - 有时在开始下一个活动之前根本不触发 的相关文章

随机推荐