android不能识别layout,在Android中的FrameLayout上无法检测到手势

我想在android中实现一个全局NavigationBar Widget,扩展FrameLayout,这样它就可以在布局xml中声明,而不是包含在每个活动中 .

NavigationBar有三个组件:Logo,Title,Button当触摸或向下按下NavgationBar(不包括按钮)时,我会显示一些东西 . 但是现在我的onFling手势无法被检测到(SwipeGestureListener中的OnFling已经过测试),任何一个可以帮我 .

类NavigationBar:

public class NavigationBarWidget extends FrameLayout implements View.OnClickListener

private SwipeGestureListener mSwipeListener = new SwipeGestureListener();

private GestureDetector mGestureDetector;

NavigationBarWidget():

mGestureDetector = new GestureDetector(mSwipeListener);

this.setOnTouchListener(new View.OnTouchListener() {

@Override

public boolean onTouch(View v, MotionEvent event) {

Log.v("Nav", "onTouch");

return mGestureDetector.onTouchEvent(event);

}

});

的OnClick():

@Override

public void onClick(View paramView)

{

if(paramView.getId()== mShareIcon.getId()){

AlertDialog.Builder builder = new AlertDialog.Builder(this.getContext());

builder.setMessage("Are you sure you want to exit?")

.setCancelable(false)

.setPositiveButton("Yes", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int id) {

}

})

.setNegativeButton("No", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int id) {

dialog.cancel();

}

});

AlertDialog alert = builder.create();

alert.show();

}else{

Log.v("Nav", "onClick");

}

}

swipeGestureListener中的onFling():

@Override

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {

Log.v("Nav", "onFling");

try {

if (Math.abs(e1.getX() - e2.getX()) > SWIPE_MAX_OFF_PATH)

{

return false;

}

else

{

if ((e2.getY() - e1.getY() > SWIPE_MIN_DISTANCE) && (Math.abs(velocityY) > SWIPE_THRESHOLD_VELOCITY)) {

this.mCallbackListener.onFlingDown();

return true;

}

}

} catch (Exception e) {

e.printStackTrace();

}

return false;

}

Logcat:当触摸或向下移动导航栏时,已输出“onTouch”,但未检测到手势onFling .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值