button的setClickable 和 setEnabled 区别

Android开发笔记之:如何屏蔽Button setClickablesetEnabled 本篇文章是对在Android中,如何屏蔽Button setClickablesetEnabled的方法进行了详细的分析介绍,需要的朋友参考下 立即下载

setClickable(false) 是让控件不能点击 ,但是你可能会发现,如果你想暂时的让一个控件不能被点击,但是setClickable(false)这样做了以后,仍然可以被点击,这是为社么呢?

我们来看一下android源码

public void setOnClickListener(OnClickListener l) {  
    if (!isClickable()) {  
        setClickable(true);  
    }  
    getListenerInfo().mOnClickListener = l;  
} 

原因就是这,设置setOnclickListener方法中会,自动启动  setClickable(true) 方法


setEnable(false)将控件能完全禁用,颜色会变灰色
Android中Button.setClickable(false)失效 setClickable(false)方法要且一定要在setOnClickListener()方法之后,才能得到正确的效果 阅读详情

相关推荐

android buttonclickable enable属性的个人见解

在最近的项目中,需要对一个按钮进行点击不可点击的状态的切换,偶然发现一个问题,就是buttonclickable属性在xml中进行定义为false的话,按钮竟然依然可以触发点击事件,但是在代码中进行设置的话,就不会触发了.表示好奇怪的说, 如果在xml中设置enable属性为false的话,button的click以及longclick就全都不可以响应了,这个倒是正常,这只是一个小问题,不影响

我用双手成就你的梦想,所以我必须努力 1万+

setClickable setEnable 的区别

每次看完一些东西之后 ,当时明白 之后就忘记了 ,所以 以后看完一篇 都自己写个总结。不用用到的时候再去从新看。 setClickable(false)setEnable(false)笼统的都是禁止点击的意思。 但是有细微的差别: setClickable()是设置控件点击无效,但是可以点击,颜色不会变灰色。而使用他时 setClickable(false)方法一定要放在setOnCl

矿工的博客 1万+

C++函数模板实战:从编译链接到可变参数模板的完整解决方案

函数模板是C++泛型编程的核心机制,它通过编译期代码生成实现类型安全的通用算法。其工作原理基于模板实例化——编译器根据调用时提供的类型参数生成特定版本的函数代码。这一机制的价值在于编写一次代码即可处理多种数据类型,显著提升代码复用性类型安全性。在实际工程中,函数模板广泛应用于容器库、算法库、智能指针工厂等场景,如STL中的`std::sort`、`std::vector`等。然而,开发者常面临编译链接错误、类型推导意外、重载决议复杂等挑战,特别是涉及**可变参数模板****完美转发**时。本文通过实战案

weixin_30363509的博客 551

Android开发 屏蔽Button setClickablesetEnabled区别

今天想让按键暂时无效,满足一定条件下才可以被用户按到。最初以为是setClickable,谁知搞错了。 请看手册: [java]  public void setClickable (boolean clickable)    Since: API Level 14  Sets whether this node is clickable.    Note: Cannot

joe 1932

Android开发 屏蔽Button setClickablesetEnabled

Android开发 屏蔽Button setClickablesetEnabled

hgfygfc的博客 275

setFocusable、setEnabledsetClickable区别

setFocusable、setEnabledsetClickable区别 setClickable  设置为true时,表明控件可以点击,如果为false,就不能点击;“点击”适用于鼠标、键盘按键、遥控器等; 注意,setOnClickListener方法会默认把控件的setClickable设置为true。 setEnabled  使能控件,如果设置为false,该控件永远

LLXLQY的博客 865

[android] setFocusable、setEnabledsetClickable区别

setClickable  设置为true时,表明控件可以点击,如果为false,就不能点击;“点击”适用于鼠标、键盘按键、遥控器等; 注意,setOnClickListener方法会默认把控件的setClickable设置为true。 setEnabled  使能控件,如果设置为false,该控件永远不会活动,不管设置为什么属性,都无效; 设置为true,表明激活该控件,控件处于活动状

网站前端/PHP/Android/其他 2892

setEnabled() setClickable() 的区别

工作中有时候经常会遇到控制按钮是否可点击的时候,setEnabled() setClickable() 都可以做到,只要将它们设置成false ,按钮就不可点击,设置成true,按钮就可以点击。 它们的区别在于: setClickable():设置成true时,按钮为可点击,设置为false时,按钮不可点击,不能响应点击事件,但此时如果set...

weixin_30750335的博客 81

setClickable(false)不起作用

问题: 设置一个控件的setClickable(false)后,发现没有效果。 解决办法: setClickable(false)方法一定要在setOnClickListener()方法之后。 因为在setOnClickListener()方法中有这样一段代码: if (!isClickable()) { setClickable(true); } ...

dowhathowtodo 476

Android Button 属性介绍与使用

一、简介 Button 控件继承 TextView,拥有 TextView 的属性。 StateListDrawable 是 Drawable 资源的一种,可以根据不同的状态,设置不同的图片效果,关键节点 <selector >,只需要将 Button 的 background 属性设置为该 app/res/drawable 资源即可轻松实现,按下按钮时不同的按钮颜色或背景。 二、Button 属性 代码常用属性 属性 含义 setClickable(boolea

卡尔特斯 4367

setclickable(false)不可用

昨天在项目开发中碰到一个问题,想把获取验证码的按钮在手机号码格式不正确的情况下设为不可点击的状态 if (!JudgePhoneNumber.judgePhoneNums(editText.getText() .toString())) {verificationcodeButton.setclickab

Simon_Crystin的博客 1404

关于android:clickable="false"失效的问题

关于android:clickable="false"或者button.setClickable(false)失效的问题 放到setOnclickListener后面 rightButton.setOnClickListener(this); rightButton.setClickable(false); //初始化时设置不可点击

wangfei0904306的博客 743

android:clickable= false 无效,依然能被点击

虽然在代码中设置点击事件监听器会改变视图的可点击状态,但是XML文件中的设定有助于定义理解视图的默认行为布局的设计意图。:在复杂的视图层次结构中,可能会有一些子视图默认不接受点击事件,因为点击事件被父视图处理了。:对于不需要处理点击事件的视图,将其设置为不可点击可以避免在触摸事件分发过程中进行不必要的点击检查,从而轻微提升性能。:当你创建一个自定义视图或布局,并且默认情况下它不应该响应点击事件时,你可以在XML中明确地将。在某些情况下响应点击事件,即使已经设置了点击监听器,你可以在代码中动态地设置。

iblade的博客 2615

关于setClickable(false)失效的问题

今天在设置控件不可点击的时候,发现setClickable(false),后来发现setOnClickListener里的一段代码   if (!isClickable()) { setClickable(true); },所以也就是说,源码里面自动设置为true了。       解决办法就是:必须在代码里面setOnClickListener(this)而且setClickable(

Langxingtianxi的专栏 1379
上一篇: 注释@interface 反射
下一篇: 广播 有序和无序的区别 本地和全局的区别
tjoven
博客等级 码龄13年 9粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值