2

我有一个GridViewGridView. 在显示我的预览时,我想禁用滚动。我的代码如下所示:

grid.setOnTouchListener(new OnTouchListener() {
    public boolean onTouch(View v, MotionEvent event) {
        if(event.getAction() == MotionEvent.ACTION_UP) {
            preview.setVisibility(View.GONE);
            return true;
        } else if(event.getAction() == MotionEvent.ACTION_MOVE) {
            Log.d("test", "isShown: " + preview.isShown());
            return preview.isShown();
        }
        return false;
    }
});

很简单,但这并不完美。通过消耗事件禁用滚动,但似乎每次在 上执行第一个移动事件GridView并且它只移动一次某些像素。

让我感到困惑的是,isShown: false在设置为 visble 后,我在 logcat 中没有收到消息preview。到目前为止,这也不是明显的反应条件。这意味着我的听众咳嗽的所有事件都true按预期返回。

我读到这几乎是重复的,还有更多:

但是有一点关于如何禁用它。这是我自己想出来的。

4

0 回答 0