android button设置成View.GONE,他的OnclickListenr事件还是监听的到,怎么把它移除? 5

Gone了视乎还占了原来的位置,因为点击的到... Gone了视乎还占了原来的位置,因为点击的到 展开
 我来答
dephrast
推荐于2018-03-26
知道答主
回答量:2
采纳率:100%
帮助的人:2505
展开全部
13年的问题。。
如果你对这个button或他的包含容器使用了Animation可能出现这种情况,你用animation.setFillAfter(true);之后就可能发生。
Animation为了防止动画发生时点击异常,所以对OnclickListenr进行处理,导致GONE之后的确不占布局了,但是click响应还是会在那个位置。
animation.setFillAfter(false);就可以了,然后你在onAnimationEnd里面手动赋值动画终止场景吧
百度网友33dab3f
2013-11-29 · TA获得超过1398个赞
知道小有建树答主
回答量:1283
采纳率:76%
帮助的人:658万
展开全部
你可以外层是FrameLayout,里面放LinearLayout布局,将Button放在LinearLayout后在Activity中直接隐藏LinearLayout不可以吗?
我原来也做过双层布局,没遇到过你的这种情况,按钮都好用啊。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ml014789
2013-11-29 · TA获得超过1346个赞
知道小有建树答主
回答量:2347
采纳率:37%
帮助的人:755万
展开全部
view.gone了应该不会占位置了,你再看看是不是其他的问题,试一下在监听中判断id。
更多追问追答
追问
inoutimagebutton.setVisibility(View.GONE); ....setEnabled(false);
case R.id.composer_button_call: Toast.makeText(v.getId() + " click", 300).show();break;
Gone了以后,按钮时看不到了,点击它们之前显示的位置还是会Toat出来,你看是什么原因吗?
追答
e ,真心没遇到过,你之前说gone之后还占位置是吧,应该是哪里没有处理对,gone之后肯定是不占位置的,也应该点击不到。最好不要用switch 来判断id,有是会报r找不到的,用if
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友30bb719
2013-11-29 · TA获得超过348个赞
知道小有建树答主
回答量:310
采纳率:75%
帮助的人:209万
展开全部
再加Button.setEnable(false)就可以了,无法点击。或者将setOnClickListener事件注释掉。
更多追问追答
追问
Button.setEnable(false)是可以把监听移除,郁闷的是那块地方点击不能响应了,我用的是FrameLayout,上下两层都有按钮,上面gone了再setEnable(false)下面还是不能点击到。
追答
额,那你的FrameLayout中还有其他按钮或者其他View没,如果没有的话,直接隐藏FramLayout就可以了。按常理来说View.GONE后是点击不到的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
烟斜洞庭
2015-05-08
知道答主
回答量:2
采纳率:0%
帮助的人:2676
展开全部
马丹,我也遇到了这个问题,居然没人会..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式