Android 单击自定义滑动抽屉内容上的视图
我正在开发一个Android应用程序。在我的应用程序中,我必须显示一个从上到下的滑动条,包括较低版本。所以我创建了一个定制的滑动抽屉。它工作正常。现在我想在滑动抽屉上加一个按钮,我已经做了。现在我无法点击按钮。我找到了不工作的原因。 请查看以下重写的方法Android 单击自定义滑动抽屉内容上的视图,android,slidingdrawer,buttonclick,Android,Slidingdrawer,Buttonclick,我正在开发一个Android应用程序。在我的应用程序中,我必须显示一个从上到下的滑动条,包括较低版本。所以我创建了一个定制的滑动抽屉。它工作正常。现在我想在滑动抽屉上加一个按钮,我已经做了。现在我无法点击按钮。我找到了不工作的原因。 请查看以下重写的方法 public boolean onInterceptTouchEvent( MotionEvent event ) { if ( mLocked ) { return false; } final int action = e
public boolean onInterceptTouchEvent( MotionEvent event )
{
if ( mLocked ) { return false; }
final int action = event.getAction();
float x = event.getX();
float y = event.getY();
final Rect frame = mFrame;
final View handle = mHandle;
handle.getHitRect( frame );
if ( !mTracking && !frame.contains( (int)x, (int)y ) ) { return false; }
if ( action == MotionEvent.ACTION_DOWN ) {
mTracking = true;
handle.setPressed( true );
// Must be called before prepareTracking()
prepareContent();
// Must be called after prepareContent()
if ( mOnDrawerScrollListener != null ) {
mOnDrawerScrollListener.onScrollStarted();
}
if ( mVertical ) {
final int top = mHandle.getTop();
mTouchDelta = (int)y - top;
prepareTracking( top );
} else {
final int left = mHandle.getLeft();
mTouchDelta = (int)x - left;
prepareTracking( left );
}
mVelocityTracker.addMovement( event );
}
return true;
}
如果我将以下代码添加到onInterceptTouchEvent中,则单击按钮可以正常工作,但滑动抽屉的滑动功能不起作用
if (mHandleLayout != null)
{
int clickX = (int) (event.getX() - mHandleLayout.getLeft());
int clickY = (int) (event.getY() - mHandleLayout.getTop());
if (isAnyClickableChildHit(mHandleLayout, clickX, clickY))
{
return false;
}
return super.onInterceptTouchEvent(event);
}
简单来说,如果我返回true,则滑动有效,但按钮单击“不”。如果返回super.onInterceptTouchEvent(事件),则按钮单击有效,但滑动功能无效
请帮助我的朋友