低仿QQ退出菜单

先上个图:


要搞个点击菜单按钮弹出菜单,用系统的简单快捷,就是外观不是很满意。发现QQ的退出菜单可以一看,百度了N久找了几个例子,组合一下,虽然跟QQ的还是有很大差异,但可以一用。

http://www.cnblogs.com/zhwl/p/3332636.html

这个例子可以一用,自己写了个线性布局,发现弹出窗口之外的地方没有变暗,又百度了一下暂时没有好的办法,后来看了他的布局代码,发现他用的是相对布局,里面有个

  1. android:layout_alignParentBottom="true"
原来如此,直接填满了整个屏幕。(就是这个问题导致不像QQ的菜单的原因,下面说)。

修改了一下布局,达到了效果。但发现严重的问题:点击菜单按钮,正常弹出,再次点击菜单按钮的时候,竟然没反应。

打了断点发现activity里的onKeyDown事件在菜单弹出时候再次点击竟然没响应。此路不通了。

又百度了一下

http://blog.csdn.net/admin_/article/details/7278402

直接拷来用,发现还是不行,修改了一下

if ((keyCode == KeyEvent.KEYCODE_MENU)&& event.getAction() == KeyEvent.ACTION_UP) { 
dismiss();// 这里写明模拟menu的PopupWindow退出就行  
                },还是不行,又打了个断点,发现event是DOWN事件 然后修改KeyEvent.ACTION_UP为 KeyEvent.ACTION_DOWN,问题解决。

问题解决之后又发现点击弹出框灰色的部分弹出框竟然没有隐藏,想了一下,想起布局设计是全屏的,this.setOutsideTouchable(true);这个不起作用,

将原来的代码

mMenuView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {

int height = mMenuView.findViewById(R.id.pop_layout).getTop();
int y=(int) event.getY();
if(event.getAction()==MotionEvent.ACTION_UP){
if(y<height){
dismiss();
}
}
return true;
}
});

这段取消注释,就OK了(调试的时候将其注释了,真是悲催)。

有测试了一下,发现布局跟QQ的不一样导致弹出效果不一样之外,其他的可以一用。

这个布局跟弹出框之外的地方变黑这个问题暂时还没有什么解决的办法,谁有就告诉我一下。

贴代码麻烦,直接打包下载,测试的时候最好用真机,不好用模拟器。

下载源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值