Android GridLayout中的慢按钮响应

时间:2013-12-18 09:30:25

标签: android grid-layout

当我将我的按钮放在GridLayout时,触摸响应在视觉上与正常情况不同。在快速触摸时,从默认状态到按下状态的变化看起来很正常,但是当我触摸并按住时,在按下的按钮drawable显示之前有一个非常明显的延迟。知道为什么吗?

我试图将按钮移到GridLayout之外,然后再次表现得正常 - 它会立即变为按下状态。我也试过android:longClickable="false",但这并没有解决问题。

这是我的简单测试:

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <Button
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:text="1"
        android:textStyle="bold"
        android:textSize="40dp"
        android:background="@drawable/num_button"/> <!-- Same result without this drawable-->
</GridLayout>

我的测试设备是运行KitKat的Google Nexus 10。

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,但我在SO上发现了类似帖子中的修复。

您需要覆盖按钮并添加以下代码:

public boolean onTouchEvent (MotionEvent event) 
{
    if (event.getAction() == MotionEvent.ACTION_DOWN) setPressed(true);
    return super.onTouchEvent(event);
}