如何在SwipeRefreshLayout中禁用触摸事件?

时间:2014-12-17 07:23:39

标签: android android-layout

我使用Google的SwipeRefreshLayout。我有几个问题。

  1. 如何在触摸屏处于活动状态时屏蔽触摸屏?{/ 1}?
  2. 如何在更新过程中在屏幕旋转中心而不是顶部进行操作?

    onRefresh()

1 个答案:

答案 0 :(得分:1)

  1. 如果您想在刷新期间阻止某些视图(blockedView)获取触摸事件,您可以在OnTouchListener中使用该事件:

    @Override
    public void onRefresh() {
        clearTable(holidayTable);
        clearTable(cityayTable);
        setData();
        refreshing = true;
    }
    ...
    
    blockedView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            //consuming the touch
            if (refreshing) return true;
            //letting the touch propagate
            else return false;
        }
    });
    
  2. 使用此方法设置所需的offset像素:

    swipeLayout.setProgressViewOffset(true, 0, offset);