我正在尝试为用户创建Like和不同按钮的自定义视图。
如果我滑动L-> R,它显示出类似按钮并且滑动R-> L显示不同的按钮。
由于单击视图顶部会触发单击下面的按钮,如果没有显示按钮,则必须使该按钮不可见。
我正在使用我的自定义手势探测器来检测滚动并移动顶视图以显示下方的按钮。
private Handler setLikeWrapperVisibility = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(Message msg) {
// Log.i(TAG, "likeWrapper: " + (msg.what == VISIBLE ? "VISIBLE" : "INVISIBLE"));
likeWrapper.setVisibility(msg.what);
return true;
}
});
在自定义手势探测器中。
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
move(distanceX);
if (isLeftOpen() > 0) {
if (dislikeWrapper.getVisibility() == VISIBLE)
setDislikeWrapperVisibility.sendEmptyMessage(INVISIBLE);
if (likeWrapper.getVisibility() == INVISIBLE) {
setLikeWrapperVisibility.sendEmptyMessage(VISIBLE);
}
} else if (isRightOpen() > 0) {
if (likeWrapper.getVisibility() == VISIBLE)
setLikeWrapperVisibility.sendEmptyMessage(INVISIBLE);
if (dislikeWrapper.getVisibility() == INVISIBLE)
setDislikeWrapperVisibility.sendEmptyMessage(VISIBLE);
}
return true;
}
但是当按钮的可见性变为View.VISIBLE
(可能是500毫秒)时会发生延迟。即使顶视图从侧面移动。下面的按钮没有立即出现。